제 동료가 잘못된 지점에서 저장소를 두 번 저지했습니다.잘못된 분기에 적용된 Mercurial에서 일부 커밋을 제거한 다음 올바른 분기에서 재생할 수 있습니까?
두 가지 커밋을 수행하고이를 제거하고 올바른 분기에서 올바르게 커밋하는 가장 효과적인 방법은 무엇입니까? (변경 사항이 푸시되지 않았습니다.)
TortoiseHG에서이 작업을 수행하는 것이 가장 이상적이지만 이상적인 옵션 인 경우 명령 줄을 사용합니다.
제 동료가 잘못된 지점에서 저장소를 두 번 저지했습니다.잘못된 분기에 적용된 Mercurial에서 일부 커밋을 제거한 다음 올바른 분기에서 재생할 수 있습니까?
두 가지 커밋을 수행하고이를 제거하고 올바른 분기에서 올바르게 커밋하는 가장 효과적인 방법은 무엇입니까? (변경 사항이 푸시되지 않았습니다.)
TortoiseHG에서이 작업을 수행하는 것이 가장 이상적이지만 이상적인 옵션 인 경우 명령 줄을 사용합니다.
내가 발견 한 바에 따르면, 이식은 사용할 수있는 최상의 확장 프로그램입니다. 원하는 다른 개정판에 changset을 적용합니다.
http://mercurial.aragost.com/kick-start/tasks.html#transplanting-changes
내 문제에 대한 해결책은, 두 개의 변경 사항이 적용되어 있어야 분기 업데이트에서 두 변경 집합을 이식 한 후 변경 사항을 제거하기 위해 MQ를 사용하는 것이 었습니다. 모두가 tortoiseg 내에서 할 수 있습니다.
Mercurial Queues (mq) 확장 프로그램이 도움이 될 수 있습니다.
은 다음과 같습니다 변경 이력을 감안할 때 :@ changeset: 3:9dc681b56325
| summary: file4
|
o changeset: 2:6675b3f86aa7
| summary: file3
|
| o changeset: 1:4a3209ed5b2f
|/ summary: file2
|
o changeset: 0:6ab45ac3bd6d
summary: file1
이동 다른 지점 위에 'file4'변경 집합합니다 ('파일 2'헤드) 파일을 다음 명령 :
hg qimport -r 3 // convert revision 3 to a patch
hg qpop // remove it
hg update 1 // switch to the other branch head
hg qpush // push the change back
hg qfin -a // convert the applied patch back to a changeset
결과 :
@ changeset: 3:3faa754edb0b
| summary: file4
|
| o changeset: 2:6675b3f86aa7
| | summary: file3
| |
o | changeset: 1:4a3209ed5b2f
|/ summary: file2
|
o changeset: 0:6ab45ac3bd6d
summary: file1
지금 부모님. 최신 버전의 TortoiseHg는 MQ 확장을 지원합니다.
이 경우 hg rebase
을 사용하는 것이 훨씬 더 좋습니다. 이것은 TortoiseHg 측에 도움을 줄 수
: http://stackoverflow.com/questions/2963250/how-to-remove-accidental-branch-in-tortoisehg/2974657#2974657 – VonC