2008-10-17 7 views
3

"버전 관리 시스템"이 날짜가 지정된 폴더 인 레거시 프로젝트를 SVN으로 가져 오는 쉬운 방법을 아는 사람이 있습니까? 보존되어 있습니까?Subversion에 이전 프로젝트 가져 오기 (일련의 폴더 날짜순)

내가 상속 한 프로젝트는 버전 제어가 아니 었으며 수백건의 폴더가 있습니다. 각각 날짜가 : 2006-11-26, 2006-11-27 등 ... 감사하게도 그들은 꽤 좋은 직장을 가졌습니다 열심히 폴더를 만들 때도 (몇 주 동안) 아무 것도 바뀌지 않았습니다.

내가 가장 좋아할만한 것은 가장 오래된 폴더가있는 새 저장소를 만드는 스크립트/도구입니다. 그리고 나서 순차적으로 &은 모든 새 버전 명령을 적용하여 이후 버전의 각 폴더를 새 버전으로 변환합니다.

나는 그것이 의미가 있기를 바랍니다. 저의 오래된 셸 스크립터는이 문제를 스스로 해결하려고 시도하지만, a) 처음에는 상상했던 것보다 더 많은 일이 될 것이라고 확신합니다. b) 내 시간을 가장 잘 사용하지는 않습니다. (저는 전문가가 아닙니다. 쉘 스크립트 작성하기), 그리고 c) 누군가가 이미 이것을했다고 생각합니다.

추가 크레딧 : 스크립트/툴을 사용하여 폴더 이름을 기반으로 타임 스탬프 속성을 수정하여 전복 기록을 현실에 가깝게 만듭니다.

나는 모두 의미가 있기를 바랍니다.

도움을 주셔서 감사합니다.

P. 나는 리눅스에서이 모든 것을하는 것을 선호하지만, (헐떡 거림!) Windows 솔루션이 있다면 거지는 선택자가 될 수 없습니까?

답변

3

쉘 스크립트 솔루션이 너무 어려울 것이라고 생각합니다. 이런 식으로 뭔가 : 내가 아는

for d in 200* 
do 
    cp -a $d/* svndir/ 
    cd svndir 
    svn add * 
    svn commit 
    cd .. 
done 

오히려 순진 코드,하지만 난 뭔가 이런 비트는 일을 할 것이라고 생각합니다 (이미 저장소가되는 대상은 svndir에 체크 아웃). 아마도 svn commit에 주석을 입력하라는 요구 사항을 건너 뛰는 인수가있을 것입니다. 그렇지 않으면 매우 지루합니다.

cp -a는 타임 스탬프를 유지하지만 물론 svn 기록은 현재 날짜에 커밋되는 모든 것을 표시합니다. 아마도 'date'명령을 사용하여 복사하고 커밋 할 때마다 디렉터리 이름 ($ d 값)에 따라 실제로 서버 날짜를 설정할 수 있습니다. 그러나 그것은 약간 위에 있을지도 모른다.

+0

--message "$ d에서 커밋"--non-interactive에서 svn commit을 전달할 수 있습니다. 이것은 커밋 메시지를 추가하고 대화식 질문을 방지합니다. –

+0

삭제 된 파일은 삭제되지 않습니다. – wnoise

+0

모두에게 감사드립니다. 나는 들어오고가는 전화 번호부가 있고, 나는 필요하다면 그 (것)들을 삭제하고 싶으면. 타임 스탬프 보존과 관련하여 다음과 같이 사용할 수 있다고 생각했습니다. (빨간색 원으로 스크롤) : http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.tour.revs .dates – Dan

2

load-dirs.pl이 사용 사례의 경우 디렉토리를 가져 와서 Subversion으로 가져오고 이름 바꾸기 및 삭제에 대한 버전 기록을 유지 관리 할 수도 있습니다. 좋은 문서는 Subversion 저장소 (위의 링크) 안에 있습니다.

+0

대단히 고마워, 나는 그것을 소용돌이 줄 것이다. 도움을 감사하십시오. – Dan