2012-09-21 3 views
0

아래와 같이 저장소에 여러 개의 역사적인 변경 집합이 포함 된 지점이 있다고 가정 해 봅니다.저장소를 수은으로 다른 저장소로 이동할 수 있습니까?

== repository1 == 
(init)A -> B -> C -> D - E -> ... (default branch) 
        \ 
        \ -> C'1 -> C'2 -> C'3 -> .... (branch1) 


지금, 나는 다음과 같은 또 다른 별도의 저장소 (이식) BRANCH1을 이동하려는.

== repository1 == 
(init)A -> B -> C -> D - E -> ... (default branch) 
        \ 
        \ -> C'1 -> C'2 -> C'3 -> .... (branch1) 

== repository2 == 
(init)C'1 -> C'2 -> C'3 -> ... (default branch) 

그 방법을 아는 사람이 있습니까? 감사.



업데이트 :
그것은 조상을 포함하지 않고 저장소의 일부를 전송하는 데 조금 이상한 것 같다. 우리가 잠시 동안 큰 프로젝트를 개발하기 시작한 곳에서 발생한 상황과 프로젝트 비용을 지불하는 사람들은 프로젝트의 일부 구성 요소를 각각 독립적으로 개발할 수 있기를 원합니다. 그들은 컴포넌트가 독립적 인 제품이나 작은 오픈 소스 프로젝트가되기에 너무 좋다고 생각하기 때문에 관계가없는 코드가 저장소에 남아 있지 않기를 바랍니다.

답변

1

이식 장기 내선 번호를 사용하는 것이 가장 좋지만, convert extension도 확인해야합니다. 그것이 다른 개정 관리 시스템에서 수은으로의 변환을 위해 명목상 의도되었지만, Mercurial 저장소에서 다른 저장소로 '변환'하는데도 유용하며 필터링 및 선택에 대한 매우 정교한 지원이 필요합니다.

정확히 무엇을하고 싶은지에 따라 '변환'이 가장 직접적으로 표현할 수도 있고 그렇지 않을 수도 있습니다.

1

너 자신을 사용했습니다 : hg transplant이 필요합니다.

새 저장소를 시작한 다음 hg transplant -s <original_repo> -b branch1을 실행하십시오. 그렇게해야한다고 생각하십시오.

+0

답변 해 주셔서 감사합니다. 올바른 방법으로 사용했는지 여부는 확실하지 않습니다. 언급 한 명령을 실행하려고하면 다음과 같은 새 저장소가 생깁니다. (init) A -> B -> C -> D - E -> C'1 -> C'2 -> C'3 -> ... (기본 브랜치) 하지만 내가 필요한 것은 (초기화) C'1 -> C'2 -> C'3 -> ... (기본 분기) –

+0

그러고 싶습니다. AB와 C의 역사가 없다면, C'1이 그것에 대해 합리적인 것을 어떻게 기대합니까? – Hbcdev

1

시퀀스 (init)C'1 -> C'2 -> C'3 -> ... (default branch)은 의미가 없습니다. C'1은 조상이 필요합니다! 간단한 복제본 만 있으면 원하는 것을 얻을 수 있습니다.

$ hg clone repository1 clonerepo -r C'3 

Clonerepo 지금 당신이 원하는 단지 (init)A -> B -> C -> C'1 -> C'2 -> C'3 (또는하지 않을 수) 일 수있는이 포함되어 있습니다.

관련 문제