두 개의 수은 저장소가 있습니다. 이 시점에서 두 프로젝트를 동시에 작업하고 싶기 때문에 그들이 "하나가된다"는 것이 의미가 있습니다.
두 프로젝트가 각각 새 저장소의 하위 디렉터리가되기를 바랍니다.
- 두 프로젝트를 어떻게 병합합니까?
- 좋은 생각인가요, 아니면 따로 보관해야하나요?
한 리포지토리에서 다른 리포지토리로 푸시 할 수 있어야하는 것 같습니다 ... 어쩌면이게 정말 간단할까요?
답변:
이 방법으로 두 개의 저장소를 결합 할 수있었습니다.
hg clone first_repository
저장소 중 하나를 복제하는 데 사용 합니다.hg pull -f other_repository
다른 저장소에서 코드를 가져 오는 데 사용 합니다.-f
풀 의 (force) 플래그가 핵심입니다. 두 저장소가 동일한 소스에서 가져온 것이 아니라는 사실을 무시하라는 메시지가 표시됩니다.
이 기능에 대한 문서 는 다음과 같습니다 .
hg merge
마지막으로 모든 것을 작동 얻을에
hg glog
이 작업을 수행 한 후 살펴보면 관련되지 않은 두 줄의 변경 집합이 있음을 알 수 있습니다. 각 줄의 첫 번째 변경 집합에는 부모가 없지만 Mercurial에서는 문제가되지 않습니다. 일단 당겨서 각 행에 대해 하나의 새 변경 세트를 만들고 hg mv
적절한 하위 폴더에 모든 것을 넣은 다음 행을 병합하면 모든 설정이 완료됩니다.
hg는 1.3 (2009-07-01) 이후 하위 저장소 를 갖기 시작했습니다 . 초기 버전은 불완전하고 불안정했지만 이제는 꽤 유용합니다.
프로젝트 전체에서 동일한 코드를 사용하지 않는 경우 별도로 유지하십시오. 당신은 설정할 수 있습니다 당신 떨어져 단지 디렉토리로 해당 프로젝트의 각각의 개인 저장소를. 필요하지 않을 때 모든 분기, 병합 및 커밋을 혼합하는 이유.
편집 정보 : 한 저장소에서 다른 저장소로 푸시. 언제든지 transplant
명령을 사용할 수 있습니다 . 이 모든 것이 실제로 두 가지를 결합 하려는 욕구 를 뒷받침하는 것이므로 내 제안을 사용하면 불편할 수 있습니다. 그런 다음 포리스트 확장 또는 다른 것을 사용할 수 있습니다.
hg transplant -s REPOSITORY lower_rev:high_rev