2011-09-20 4 views
2

현재 svn 병합 프로세스를 개선하려고합니다. 이를 달성하기 위해 마지막 dropmerge 이후 변경된 폴더를 찾는 쉘 스크립트를 작성하기 시작했습니다. 그 스크립트의 출력 파일은 다음과 같습니다 :파일을 기반으로 폴더 구조를 만듭니다.

/components/intmodules/ 
/components/ext/modules/EmailConn Runtime/ 
/components/emailconn/ 
/components/ftpconn/ 
/components/ 
/redist/ 

이제이 폴더 구조를 svn 업데이트를 사용하여 파일 시스템에 만들길 바랍니다. 가장 깊은 (구성 요소가 아닌) 것을 제외하고 모든 폴더는 --depth files으로 체크 아웃해야하며 그 파일은 --depth infinity으로 체크 아웃해야합니다.

어떻게하면 좋을까요? 이름에 공백이있는 폴더를 포함하여 폴더를 반복하고 체크 아웃/업데이트 할 수있는 방법은 무엇입니까?

+0

"무한대"를 얻는 방법을 어떻게 알 수 있습니까? 그 외에 간단한 'while read dir' 루프가 있어야합니다. – tripleee

답변

3

무한 깊이가 아닌 작업 복사본으로 병합하는 것은 좋지 않으므로 일반적으로 좋지 않을 수 있습니다.

그렇다면 Subversion 저장소에는 원하는 것을 설명하는 입력 파일을 기반으로 혼합 된 깊이 작업 복사본을 체크 아웃하는 샘플 스크립트가 있습니다. 이 스크립트를 사용하여 체크 아웃을 수행하고 스크립트가 원하는 파일 형식을 생성하도록 스크립트를 조정하는 것이 좋습니다. 그것은 당신이 위에 보여준 것과 너무 흡사하므로 너무 열심히해서는 안됩니다.

http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/svn-viewspec.py

+0

고마워요 @ 마크, 잘 작동합니다! 이 스크립트를 사용하여 viewspec 파일을 생성하고 원하는 방식으로 정확하게 체크 아웃 할 수 있습니다. echo "형식 : 1"> viewspec.txt echo "URL : $ url">> viewspec.txt echo "">> viewspec.txt awk '{if ($ 0 == "/ components /") 출력 $ 0 "**"}} '출력 - all.log >> viewspec.txt 에코 "./~" "$ 0"= "/ 구성 요소 /") >> viewspec.txt – Excel20