잠금 형식 이해
Lock 명령을 사용하여 소스 제어 서버에서 임시로 특정 파일이나 폴더를 변경하지 못하게 할 수 있습니다. 이렇게 하면 항목을 작업 영역에서 변경한 다음 병합 충돌을 해결할 필요 없이 체크 인하려는 경우 유용할 수 있습니다. 한 번에 한 사용자만 특정 파일이나 폴더에 대한 잠금을 보유할 수 있습니다. 특정 항목에 대한 액세스를 지속적으로 방지하려면 이 대신 Permission Command을 사용해야 합니다.
잠금 형식
Team Foundation에서는 잠금 형식으로 체크 인 잠금과 체크 아웃 잠금을 제공합니다.
체크 인 잠금
체크 인 잠금은 체크 아웃 잠금보다 덜 제한적입니다. 체크 인 잠금을 적용하면 사용자는 다른 작업 영역의 항목에 대한 로컬 변경을 지속적으로 수행할 수 있습니다. 그러나 항목에서 체크 인 잠금을 명시적으로 제거하거나 파일에 변경 내용을 체크 인하여 체크 인 잠금을 암시적으로 제거할 때까지는 이러한 변경 내용을 체크 인할 수 없습니다.
체크 아웃 잠금
Visual Studio Team Foundation Server 2012에서 체크 아웃 잠금은 로컬 작업 영역으로 인해 (참조 로컬 작업 영역을 사용할지 서버 작업 영역을 사용할지 결정)일반적으로 적용되지 않습니다. 체크 아웃 잠금은 구체적으로 다음과 같습니다:
다른 사용자의 로컬 작업 영역을 사용할 수 있기 때문에 집행되지 않습니다.
로컬 작업 영역을 사용 하는 경우에 사용할 수 없습니다.
팀 프로젝트 컬렉션의 관리자 보안 그룹의 구성원이 팀의 서버 작업에 대한 비동기 체크 아웃을 사용할 경우 오작동 합니다.
체크 아웃 잠금은 서버 작업 공간을 사용하는 사용자들이 작업 공간에서 잠금된 항목을 변경하거나 체크 아웃하는 것을 막습니다. 자신의 작업 영역이 아닌 작업 영역에서 보류 중인 변경 내용이 있는 항목에 체크 아웃 잠금을 적용할 수 없습니다.
잠금의 작동 방식
파일을 잠글 때 파일이 체크 아웃되어 있으면 파일의 체크 아웃 레코드가 새 잠금 형식을 포함하도록 수정됩니다. 파일이 체크 아웃되어 있지 않으면 보류 중인 작업 영역 변경 내용 집합에 "잠금" 변경이 추가됩니다. check-out 명령과 달리 lock 명령은 자동으로 파일을 편집 가능하게 만들지 않습니다.
Team Foundation에서는 항목이 잠겨 있는 작업 영역에서 보류 중인 변경 내용을 체크 인할 때 자동으로 항목의 잠금을 해제합니다. 파일의 보류 중인 변경 내용이 undo 명령을 사용하여 취소되는 경우에도 잠금이 해제됩니다.
폴더에 대한 잠금은 암시적으로 재귀적입니다. 폴더를 잠그는 경우 체크 인 잠금이 있는 폴더의 파일에 더 제한적인 체크 아웃 잠금을 적용하려고 하는 것이 아닌 한 폴더에 포함된 파일을 잠글 필요가 없습니다.
한 번에 한 사용자만 특정 파일이나 폴더에 대한 잠금을 보유할 수 있습니다. Status 명령을 사용하여 Team Foundation 버전 제어 서버에서 잠겨 있는 파일과 파일을 잠근 사용자를 파악할 수 있습니다.
잠금은 자체 작업으로 설정되거나 이름 바꾸기, 체크 아웃, 삭제, 삭제 취소, 병합, 분기, 소스 제어에 추가 등 여러 다른 작업의 일부로 설정될 수 있습니다. 소스 제어에 대한 추가나 분기 작업의 일부로 항목을 잠그면 Team Foundation에서는 새 항목이 만들어지는 서버 경로에 잠금을 설정합니다. 이렇게 하면 다른 사용자가 같은 위치에 파일을 추가하거나 분기하지 못하게 됩니다. rename 명령을 사용하여 항목을 잠그면 이전 서버 경로와 새 서버 경로가 모두 잠깁니다.
항목 잠금 해제
unlock 명령을 사용하여 명시적으로 또는 체크 인할 때 암시적으로 항목의 잠금을 해제할 수 있습니다. 잠긴 항목에 대한 보류 중인 변경 내용을 체크 인하면 Team Foundation에서 모든 잠금을 제거합니다.
참고
기본적으로 UnlockOther 권한은 관리자에게만 부여됩니다.UnlockOther 권한이 있으면 Lock Command을 사용하여 다른 사용자의 작업 영역에 있는 항목에서 잠금을 제거할 수 있습니다.