как нажимать кучу на изменения как один в mercurial

Как я понимаю, одно из основных преимуществ распределенной системы контроля версий, такой как Mercurial, заключается в том, что вам не нужно беспокоиться о том, что что-то сломается в вашем сверхважном основном репо (которое используется довольно многими другими разработчиками), и делать все, что вам нужно. работайте и исследуйте в своем личном удаленном клоне, пока не поймете, что все стабильно и вы можете отодвинуть свою работу назад. И отсюда у меня возник вопрос: можно ли отодвинуть не всю вашу историю изменений (с несколькими ревизиями, которые вы сделали для себя), а только ту, которая на самом деле отличается между вашим репо и текущим состоянием мастера.

Один пример:

hg init master-repo; cd master-repo  
echo -e 'Important file\nWith Bug!' > file  
hg commit -A -m "initial commit"  
cd ..; hg clone master-repo hotfix-repo; cd hotfix-repo  
echo "fix1" >> file  
hg commit -m "first attempt to fix bug"  
echo "fix2" >> file  
hg commit -m 'Fixed it!'

Теперь (возможно, после извлечения и слияния с новейшими изменениями основного репо) я хочу вернуть только один набор изменений, содержащий все изменения, которые я сделал без моей локальной истории коммитов. Одно из возможных решений — создать еще один клон, а затем использовать diff/patch между двумя клонами, чтобы извлечь/применить изменения из первого и зафиксировать их все сразу во втором репо. Затем сделайте толчок, как в обычном случае. Но возможно ли это, используя только команды mercurial?

Спасибо!

6
задан Martin Geisler 30 March 2012 в 12:18
поделиться