2013-01-04 2 views
0

저장소에는 기본값과 안정 경로의 두 가지 분기 만 있습니다. 나는 안정된 지점에서 난장판을 만들었지 만 나는 그것을 고치는 방법에 대한 단서가 없다.Mercurial : 여러 헤드가있는 저장소를 수정하십시오.

Current Repository

기본 분기 default를 들어

92 is the revision created by the maven-release-plugin. 
93 commit on stable 
94 merge stable into default 
95 to 98 commit on default 
99 merge default into stable 
100 to 103 commit on stable 
104 try to fix the mess with a hg merge -r 98 

내가 머리가 98되고 싶은 새로운 기능입니다. 안정을 위해 나는 94에서 98까지 커밋을 포함한 단일 헤드로 돌아가고 싶다.

+0

당신이해야 할 유일한 일은 레브를 닫는 것 같습니다. 93 브랜치 (또는 스트립), 103 및 104 병합 - 다른 모든 것은 괜찮습니까? – Lucero

+0

또는 93 및 100 ... 103을 104로 리베이스하십시오. 모두 '초안'단계입니까? –

답변

1

Default의 머리는 98이어야합니다. 그렇지 않니? hg heads default을 실행하여 default 분기의 헤드 인 변경 집합 목록을 가져옵니다. 그래프에서이 값은 98이고 값은 98입니다.

hg merge은 103과 104를 커밋하고 싶다고 말합니다. 그렇게하려면 그 중 하나 (hg update 103)로 업데이트 한 다음 다른 하나를 hg merge 104).

커밋 93을 처리해야합니다. stable도 갖고 싶습니까? 아니면 그 효과를 원하지 않습니까? stable에 넣으려면 병합하십시오.

stable에서 효과를 원하지 않는 경우 발생하는 상황에 따라 수행해야 할 작업이 달라집니다. 로컬 컴퓨터에있는 것입니까, 아니면 이미 업스트림에 넣었습니까? 로컬 컴퓨터에있는 경우 hg strip 93을 실행하면 저장소에서 제거되고 원격으로 푸시되지 않습니다. 이렇게하려면 mq extension을 사용해야합니다.

업스트림 93을 업스트림하면 뺄 수 없습니다. 그러나 여러분이 할 수있는 일은 changeset 93으로 업데이트 한 후 hg backout 93을 실행하여 93의 효과를 취소하는 커밋을하는 것입니다. 그런 다음 새 커밋을 stable 분기에 병합 할 수 있으며 처럼93을 커밋하지 않았습니다. 93은 기록에 있지만 코드 변경은 사라졌습니다.

+0

103과 104를 병합했습니다. 93을 계속 쓰고 싶었 기 때문에 병합했습니다. 설명적인 답변 주셔서 감사합니다. – Sydney

관련 문제