2015-01-05 2 views

답변

1

다음 방법으로 문제를 해결할 수 있지만 실제로는 '깨끗한'것은 아닙니다.

  1. 분기 B (병합 직전)로 업데이트하십시오.
  2. 분기 A로 새 병합을 시작하십시오. 상호 작용을 피하기 위해 'hg merge --tool internal : local'을 사용할 수 있습니다. 실제 병합은 중요하지 않습니다. 이전 병합 결과를 사용하기 때문입니다.
  3. 이전 병합으로 되돌리기 : hg revert --all -r OLD_MERGE_CHANGESET
  4. 병합을 수행합니다.
  5. 'hg rebase'를 사용하여 나중에 모든 커밋을 올바른 분기 맨 위로 옮깁니다.
+1

대신 내용을 복사 할 때'--all -r'을 추가/제거 된 파일을 제대로 추적하는 이전 병합으로 되돌릴 수 있습니다. – Ringding

+0

오, 그렇습니다. 매우 좋은 지적입니다. 왜 그런 생각을하지 않았는지 모르겠습니다. :-) 나는 그것을 개선하기 위해 내 대답을 업데이트 할 것입니다. 감사! – Mathiasdm

0

그냥 병합을 약속했다고 가정 할 때, 또는하지 않을 경우, 병합 변경 집합 1. 아이가없는 것을하고 2. 다음 작업 디렉토리의 부모입니다 :

hg branch B --force 
hg commit --amend 
관련 문제