HG 명령을 사용하여 수은 저장소에서 분기를 분할하여 다른 저장소를 만드는 방법은 무엇입니까?

HG 명령을 사용하여 수은 저장소에서 분기를 분할하여 다른 저장소를 만드는 방법은 무엇입니까?

예를 들어, 내 HG 저장소에 "Project X"라는 이름의 다음 기록이 있습니다(즉, rev. 80에 분기를 만들었습니다).

Project X Workbench:
-------------------------------------------------------------
·   85: Project X: version Z stable
·   84: Project X: improvements based on Project Model #3
| ·   83: Project Model: improvements #3
| ·   82: Project Model: improvements #2
| ·   81: Project Model: improvements #1
|_·   80: Project Model: created
·   79: Project X: code improvements
·   78: Project X: version Y stable
|   
[...]

이제 "프로젝트"와 "모델"이라는 두 개의 저장소를 갖고 싶습니다. "Project" 저장소에는 "Project X"의 기본 분기가 있어야 하고 "Model" 저장소에는 rev에 생성된 분기가 있어야 합니다. 80(즉, 개정판 80에서 개정판 83까지):

Project Workbench:
-------------------------------------------------------------
·   81: Project X: version Z stable
·   80: Project X: improvements based on Project Model #3
·   79: Project X: code improvements
·   78: Project X: version Y stable
|   
[...]

Model Workbench:
-------------------------------------------------------------
·   3: Project Model: improvements #3
·   2: Project Model: improvements #2
·   1: Project Model: improvements #1
·   0: Project Model: created

HG 명령을 사용하여 어떻게 할 수 있나요? 아니면 "어려운 방법"으로만 할 수 있나요?

Hard way:
---------
1. create another repository named "Model"
2. rev1 = 80, rev2 = 0
3. update "Project X" to (rev1 + rev2)
4. copy "Project X" code to "Model" folder
5. commit "Model" as rev2 using the same comments of "Project X" on (rev1 + rev2)
6. rev2++
7. go back to step 3 while rev2 < 4
8. on "Project X" strip rev1 and all its descendants

답변1

default훨씬 더 쉽고 짧게 "어려운 방법"을 만들 수 있습니다( 모델 리포지토리에서 명명된 분기의 이름을 기본값으로 바꾸지 않는다는 가정하에 ).

  1. "Project X" 저장소를 (새) "Project" 저장소로 복제합니다.범위0:80 개정 hg clone -r 80 ProjectX Project(이름 대신 실제 경로 사용)
  2. 클론가득한"프로젝트 X"를 "모델"로hg clone -r 80 ProjectX Model
  3. histedit 확장 활성화(전역적으로 또는 모델에서만)
  4. 변경 세트 0의 해시를 매개변수로 사용하여 histedit를 실행하고 개정판 80 이전의 모든 변경 세트를 "삭제"합니다.

관련 정보