2008-11-12 4 views
37

마침내 SourceSafe에서 Subversion으로 전환하는 그룹이 생겼습니다. 불행히도 관리자는 여전히 모든 단일 파일에 배타적 잠금을 사용하려고합니다. 그래서 모든 파일에 svn : needs-lock 속성을 설정하고 속성이 설정되어 있는지 확인하기 위해 미리 커밋 된 후크를 만들었습니다.Subversion에서 어떤 파일이 잠겨 있는지 확인하는 가장 좋은 방법은 무엇입니까?

Linux 서버에서 Subversion을 실행 중입니다. 우리 중 대부분은 Windows 컴퓨터를 사용하고 일부는 Mac을 사용합니다. 우리는 다양한 SVN 클라이언트 (TortoiseSVN, SmartSVN, Subclipse 등)를 사용하고 있습니다.

지금 우리가 필요로하는 것은 현재 저장소 전체에 잠겨있는 (그리고 잠근 사용자가있는) 모든 파일을 보는 좋은/쉬운 방법입니다. 나는 Tortoise와 Subclipse에서 조금 찔러 보았지만 내가 찾고있는 것을 발견하지 못했습니다. 우리 프로젝트에는 여러 수준의 하위 디렉토리가 여러 개 있기 때문에 개별 디렉토리를 살펴 보는 데 너무 많은 시간이 소요됩니다.

나는 현재 잠긴 모든 항목과 잠긴 사람을 나열하는 단일 보고서를 실행할 수 있습니다. 이러한 유형의 정보를 얻는 가장 좋은 방법은 무엇입니까?

+5

에 대한 the svnbook를 볼 수 있지만, 이러한 잠금은 코드의 공유 영역에서 생산성 킬러가 될 것입니다. 병합 도구는 이제 꽤 좋으며 사장님이 생각하는 것보다 병합을 병합하는 것이 더 쉽습니다. –

+0

@TomLeys 소스 코드 나 좋은 병합 가능한 파일 형식이있을 수 있습니다. 그러나 항상 그런 것은 아닙니다. 예를 들어 SVN이 데이터 파일이나 사무실 문서를 관리하는 데 사용되는 경우가 있습니다. 그 중 누구도 쉽게 연결할 수없고 널리 사용되는 병합 도구가 없습니다. – peterh

+0

* 현상금은 새로운 대답을위한 것인데, 잠긴 파일 목록을 원격 저장소에서 얻으려면 어떻게해야합니까? 2) 명령 행 클라이언트로 수행합니다. * – peterh

답변

32

당신이 찾고있는 것은 svnadmin lslocks 명령입니다.

우리는 우리의 Subversion 저장소 (svn:needs-lock)에 몇 가지 Word 문서를 보관하기 때문에 이것을 설정했습니다. 매일 cron 작업을 설정하고 잠금 목록을 확인한 다음 7 일이 넘은 모든 잠금 장치에 대한 보고서를 전체 팀에게 전자 메일로 보냅니다. 그런 식으로 우리는 누가 문서를 잠근 상태로 오래 앉아 있었는지 말할 수 있습니다.

+1

Office 2003은 이제 단어 문서를 병합합니다. 이 기능이 도입 된 시점을 알 수는 없지만 더 이상 단어 문서를 잠글 필요가 없습니다. –

+0

그레그에게 감사드립니다. 후속 조치로, 목록 표시를 x 일보다 오래 자물쇠로 묶는 방법 만 알려주시겠습니까? – Shane

+0

방금 ​​"svnadmin lslocks"의 출력을 구문 분석하고 각 잠금에 대해 Created 날짜를보고 그 날짜 수를 계산하는 스크립트를 작성했습니다. 제 실제 스크립트는 현재 작동 중이며 지금은 액세스 할 수 없지만 알아 내기가 쉽습니다. –

21

이것은 사용자가 찾고있는 대답이 아니지만 관리자가 실제로 잠금이 최상의 개발 방법이 아님을 확신시켜야합니다. 저기서이 주제에 쓰여진 많은 것들이 있습니다. 그래서 나는 그것을 모두 여기에서 반복하지 않을 것입니다.

잠금 환경에서 강제 잠금이 적용되지 않은 잠금 환경으로 이동하면 처음에는 혼돈으로 이어질 것이라고 생각하지만 실제로는 그렇지 않습니다. SVN은 두 사람이 같은 파일에서 작업 할 때 변경 사항을 병합하는 데 적합합니다. 충돌로 끝나더라도 수정하는 것은 그리 좋지 않습니다.

중요한 파일을 가지고 점심 식사를하러 갔던 사람을 기다리는 것보다 훨씬 나았거나, 더 나빴습니다.

+3

한 번에 한 걸음 씩 나가려고합니다. 그룹을 SourceSafe에서 없애는 것은 전투였습니다. SVN에 익숙해지면 배타적 잠금을 해제 할 계획입니다. – Shane

+3

잠금은 Microsoft Office 문서처럼 병합 또는 차별화 할 수없는 바이너리 파일을 작업 할 때 매우 중요합니다. – DanB

21

당신과 다른 사람들을 잠그는 것을 보려면 TortoiseSVN → 수정 확인 ...을 사용하십시오. 로컬에 보관 된 잠금 토큰이 즉시 나타납니다. 다른 사람들이 가지고있는 자물쇠를 확인하려면 (그리고 자물쇠가 망가 졌는지 도난당한 것인지 확인하려면) 저장소 확인을 클릭해야합니다.

+0

TortoiseSVN에서만 작동합니다. – peterh

19

svn status --show-updates을 사용하여 로컬 체크 아웃에서 잠금을 발견 할 수 있습니다. 그러면 서버에 잠긴 모든 파일 앞에 O이 기록됩니다.

$ svn status --show-updates 
    O  279532 LockedFile 
?     UncommittedFile 
M   279532 ModifiedFile 

은 자세한 내용

난 당신이 알고 알고
+0

로컬 리포지토리에서만 작동합니다. – peterh

관련 문제