2011-01-15 3 views
1

프로젝트의 SVN 저장소를 포크하고 내 Mercurial 저장소에 통합해야합니다. 일을 간단하게하기 위해 지역 hgsubversion repo와 지역 hg repo가 ​​있습니다. 그러나 mercurial 및 hgsubversion repo는 모두 default을 기본 분기 이름으로 사용합니다. 내 목표는 원래 코드와 업데이트를 하나의 브랜치에두고 코드를 default 브랜치에 붙이는 것입니다.새 기본 분기 이름으로 svn 저장소를 hg로 끌어다/복제 하시겠습니까?

그러나 아직 할 수 있어야합니다. , hgsubversion는 뽑아 둔다

W:\programming\tcsite-svn-test>hg clone http://*HG_SITE*/hg . 
no changes found 
updating to branch default 
0 files updated, 0 files merged, 0 files removed, 0 files unresolved 

W:\programming\tcsite-svn-test>hg branch blizzard 
marked working directory as branch blizzard 

W:\programming\tcsite-svn-test>hg commit 

W:\programming\tcsite-svn-test>hg log 
changeset: 0:be13a9580df0 
branch:  blizzard 
tag:   tip 
user:  Leon Blakey <[email protected]> 
date:  Fri Jan 14 23:44:25 2011 -0500 
summary:  Created Blizzard Branch 

W:\programming\tcsite-svn-test>hg pull http://*SVN_SITE*/svn/ 
pulling from http://*SVN_SITE*/svn/ 
.... 
pulled 23 revisions 
(run 'hg update' to get a working copy) 

W:\programming\tcsite-svn-test>hg branch 
blizzard 

W:\programming\tcsite-svn-test>hg branches 
default      23:93642a8890ab <------ 
blizzard      0:be13a9580df0 

당연히 내가 정말 blizzard 지점에서 그들을 필요로하는 default 지점에 커밋합니다. 문서에서 커밋이 발생한 지점의 이름을 바꿀 수있는 방법이 없습니다.

실망스럽게도 저는 hgsubversion repo 만 빼고는 repo에서 할 수있는 방법을 찾지 못했습니다. 모든 커밋은 무엇이든 그 하나의 가지에 묶여있다.

SVN repo에서 변경 사항을 가져 와서 분기 이름을 다른 것으로 바꾸는 방법에 대한 제안 사항이 있습니까?

답변

5

여기에 몇 가지 옵션이 있습니다.

내장형 확장 프로그램 인 'convert'는 단방향 변환에서 훨씬 더 유연하며 --branchmap 옵션을 사용하여 쉽게 처리 할 수 ​​있습니다. 그러나 hgsubversion은 svn에 sync'ing하기위한 좋은 기능을 제공합니다.이 기능은 hg convert을 사용하는 경우 제공되지 않습니다.

이 경우 이름 지정 체계를 전환 할 수 있습니까? 'svn에서 가져 오기'의 경우 default을 사용하고 로컬 변경에 대해 local 또는 비슷한 것을 사용하십시오. 그런 다음 다른 프로젝트와 함께 코드베이스에서 독립 프로젝트의 이름을 지정할 수 있습니다. 나는 과거에도 비슷한 메커니즘을 사용했다.

편집 : 그냥 hgsubversion documentation이를 붙 잡았다 :

hgsubversion.branch

마크가 지정되지 않은 경우, default를이 분기에 속하는 또는 변경 집합을 변환. 이 옵션은 표준 레이아웃 클론에 대해서는 지원되지 않습니다.

"표준 레이아웃 클론은"거의 확실 정상 svn의 방식으로,/지점 &/트렁크 /를 포함한 태그 전체 프로젝트를 복제하는 것을 의미한다.

I을 올바르게 이해한다면, 당신은 당신이 --config 라인 당신이 SVN에서 업데이트 할 때마다 추가해야하는 경우

hg --config hgsubversion.branch=blizzard clone <svn-repo/trunk>

확실하지 뭔가를 할 수 있지만, 약간의 실험을한다 그것을 확인해야합니다.

그 어떤 이유로 작동하지 않는 경우, hgsubversion.branchmap 기능도 가능,

+0

는'hgsubversion.branch = blizzard' 완벽했다. 감사! – TheLQ

관련 문제