2009-10-08 8 views
6

내 상황은 다음과 같습니다. Subversion 서버가 집에 설정되어 있으며, 내가 일하는 회사에서 Subversion을 사용합니다.Subversion : 커밋 할 때 속성을 제거하는 방법

직장에서는 lock/edit/unlock 모델을 사용합니다 (주로 Visual SourceSafe에서 전환하기 때문에 더 쉬워집니다). 현재 모든 추가 된 파일 (각 클라이언트 컴퓨터의 SVN 클라이언트 구성 파일의 auto-props 섹션 사용)에서 'needs-lock'속성을 설정하면이 작업을 수행 할 수 있습니다.

그러나이 모델을 내 홈 SVN 서버에 사용하고 싶지는 않습니다. (편집/병합/작업 방식을 선호합니다.) 현재 직장 PC에서 홈 서버로 커밋 한 후 내가 추가 한 파일에서 needs-lock 특성을 수동으로 제거해야합니다.

특정 서버에 커밋 된 파일에만이 속성을 적용하도록 SVN 클라이언트를 설정할 수있는 방법이 있습니까? 아니면 잘못된 방식으로 진행할 것인가? 클라이언트 대신이 속성을 추가하기 위해 작업 서버에서 후크를 사용해야합니까?

도움이나 조언을 주시면 감사하겠습니다.

편집 : 분명히 서버에서는이 작업을 수행 할 수 없으며 적어도 서버에서는 수행하지 않는 것이 좋습니다.

+0

YUCK! 이 변화를 얻기 위해 직장에서 싸우기 시작하십시오! –

+0

알아요 ... 알아요 ... –

+0

최악의 부분은 설정 한 것입니다 ... –

답변

3

Subversion autoprops 기능은 SVN 클라이언트의 config 파일에 구성되어 있습니다. 서버 별 설정을 지원하는 별도의 servers 구성 파일도 있지만, 불행히도 autoprops를 무시할 수는 없습니다.

두 버전의 config : config.homeconfig.work을 만드는 것이 좋습니다. 그런 다음 config 이상의 사본 중 하나를 복사하는 쉘 스크립트 (예 : .bat 파일)를 작성하십시오. 그러면 두 구성간에 쉽고 빠르게 전환 할 수 있습니다.

+0

좋은 계획입니다. –

7

작은 Windows 배치 파일을 작성하여 이미 설정된 모든 폴더에서 needs-lock 속성을 재귀 적으로 제거합니다. remove-needs-lock.bat로 저장

svn propdel svn:needs-lock -R -q "%1" 
svn commit "%1" -m "Removed needs-lock" 

을하고 PATH 환경 변수에 위치 추가 : 텍스트 파일에 다음 줄을 넣습니다. 그런 다음 실행할 수 있습니다 :

remove-needs-lock c:\workingcopyfoldername 

그리고 모든 파일은 더 이상 편집을 위해 잠금을 필요로하지 않습니다.

관련 문제