2011-01-26 3 views
1

각 코드 폴더의 .svn 폴더를 Hg 저장소에 커밋하고 싶습니다. 문제는 많은 .svn 하위 폴더가 비어 있으며 그 때문에 수은 저장소에 커밋 될 수 없다는 것입니다..svn 폴더를 Mercurial 저장소에 커밋하는 방법은 무엇입니까?

하나의 해결책은 빈 파일을 각 폴더에 추가하는 것이지만 번거로운 작업입니다. 더 쉬운 방법이 있습니까?

+2

왜 소스 제어에서 .svn 폴더가 필요합니까? – jgifford25

+0

@jgifford 결국 SVN 저장소에 커밋해야하지만, Mercurial을 매일 사용합니다. –

+2

@ Jader, 우리는 CVS를 기업 표준에 따라 사용해야하는 것과 비슷한 상황이지만 우리의 온전함을 위해 Git을 사용하고 있습니다. 우리는 CVS 폴더를 체크인하지 않습니다. 우리는 git repo/디렉토리에서 작업하고 정기적으로 코드를 CVS 체크 아웃을 포함하는 복제 된 로컬 저장소/디렉토리로 가져옵니다. 그런 다음 CVS 체크 아웃 폴더에서 CVS로 커밋합니다. – Vadim

답변

2

, 당신은 hgsubversion extension을 시도 할 수 있습니다 : 당신은 신속하게 그렇게 할 수 있습니다. Hgsubversion은 수은에 svn 클라이언트와 같은 svn 서버와 통신 할 수있는 기능을 제공합니다.

OTOH 모든 곳에서 .svn 폴더를 사용하고 싶다면 hgsvn을 사용하여 병렬 hg 및 svn repo 체크 아웃을 관리 할 수 ​​있습니다. 그러나 hgsvn에는 svn으로 다시 들어가는 물건에 대한 자동 rebase가 없다는 단점이 있습니다. 그래서 svn 히스토리를 (머큐리얼 병합의 관점에서) 로컬 히스토리와 병합해야 할 때 모든 로컬 커밋을 내보낼 수 없습니다 , 오직 병합 커밋 (병합이있을 때마다 모든 커밋을 내보내는 방법이 있지만 첫 번째 로컬 커밋은 최근 svn 기록을 실행 취소하고 병합 커밋은 다시 실행하여 결함 svn 기록을 만듭니다).

다른 svn에 대한 자세한 정보 < -> hg 워크 플로우는 WorkingWithSubversion 위키 페이지에 있습니다.

+0

내 SVN 저장소에 (pre-commit hook) 모든 새 파일에'svn : needs-lock' 속성이 있어야하기 때문에 hgsubversion을 사용할 수 없습니다 –

4

각각에 대해 빈 파일을 추가해야합니다. 당신은 svn의 REPO 위에 HG를 사용하려는 경우

for thedir in $(find /path/to/repo -type -d -name .svn) ; do 
    touch $thedir/emptyfile 
    hg add $thedir/emptyfile 
done 
+0

대본! 어쩌면 누군가가 창문을 쓸 수도 있습니다. –

+6

Windows 스크립트는 인턴이라고 부릅니다. ;) –

관련 문제