2010-12-09 5 views
3

방금 ​​"더 이상 필요하지 않은 주석을 모두 제거했습니다."와 같은 설명을 사용하여 Mercurial에서 내 파일을 커밋했다고 가정 해 봅시다. 몇 분 후에, 나는 그런 종류의 코멘트를 삭제하는 것을 잊었다는 것을 깨달았다. 새로운 것을 할 필요없이 몇 분 전에했던 커밋을 업데이트하고 싶습니다.Mercurial에서 커밋을 업데이트 할 수 있습니까?

이렇게 할 수 있습니까?

답변

2

MQ 확장을 사용하면이를 수행 할 수 있습니다. 그러나 기술적으로 이는 새로운 변경 집합을 생성하고 기존의 변경 집합을 제거하므로 이전의 변경 집합을 "공식"/ 공유 저장소에 이미 푸시 한 경우 운이 없어진 것입니다.

나는 정기적으로이 같은 여기에 설명 정확히 뭘 :

$ hg qimport -r tip 
$ hg qrefresh -e # edit commit message 
$ hg qfinish -a 
+1

이 커밋을 다른 곳으로 보내기 전에이 작업을 수행해야한다는 경고를 추가해야합니다. 그렇게하고 커밋을 편집하면 문제가 발생할 수 있습니다. –

+0

@Lasse : 그 말은하지 말아야한다;). 하지만 당신 말이 맞아. – Ringding

+0

나는 mq 확장자를 "얻지 못하는"유일한 사람입니까? 솔직히 나는 시도했다. 5 페이지가 아닌 좋은 자습서가 있습니까? –

6

당신이 밀어하지 않았으며 더 이상 커밋하지 않은 것으로 가정하면, 당신은 단지 hg rollback를 사용할 수 있습니다.

-1

저장소를 공유하는 경우 모든 두통을 저장하고이를 시도하지 마십시오.

+0

나는 그것을 혼자하고있다. –

+0

그렇다면 괜찮습니다. TortoiseHg의 저장소 탐색기를 사용하여 갈 것입니다. 문제의 리비전으로 이동하여 마우스 오른쪽 버튼을 클릭하고 'Mercurial Queues> Revision to MQ'를 선택하십시오. 변경을하고 커밋 대화 상자에서 패치를 새로 고친 다음 패치를 새로운 커밋으로 마칩니다. 이 일을 직접 해보지는 않았지만 효과가 있어야합니다. 업데이트 전에 가져 오기를 수행하거나 임시 보관함을 사용하여 일시적으로 이동시킬 수 있습니다. –

2

확장자는 histedit입니다.

MQ와 마찬가지로 다른 곳에서 밀어 넣었 으면 편집하지 말고, 그렇지 않은 경우 hg histedit REV을 실행하면 해당 개정판과 현재 개정판 사이의 모든 변경 집합이 나열되고 원하는 것을 선택할 수 있습니다 바꾸다. 그런 다음 histedit은 가장 오래된 것까지 백업하고, 변경하면 hg histedit --continue을 실행합니다. 세탁, 헹구십시오, 반복하십시오.

관련 문제