2015-07-01 2 views
1

Я часто рассматриваю некоторые проблемы, на которых могло быть сделано большое количество коммитов, многие из которых не последовательны. Во многих случаях ошибки впоследствии исправляются, и я предпочел бы увидеть окончательную скорректированную версию при первой проверке.Mercurial: свернуть несколько не последовательных коммитов

В настоящий момент, когда я начинаю искать, «переписывание истории» «уже слишком поздно»; все уже втянуто в мир (как правило, другими людьми, чем я).

То, что я ищу, - это способ увидеть совместное различие по целому ряду нескончаемых коммитов; Затем я могу либо на самом деле включить push diff в глобальную историю как альтернативный путь к одному и тому же выводу (более прямой, но менее правдивый к истории) или альтернативно использовать diff как локальную ссылку.

Есть ли у Mercurial встроенные (или другие) инструменты для этого?

ответ

1

Вот мой собственный ответ; Я до сих пор очень открыта для «реального решения», хотя:

  • рт.ст. до родителя первой фиксации из серии
  • , чтобы получить первый «трансплантат», должны быть приняты некоторые дополнительные действия , потому что трансплантат должен отличаться от оригинала. Поэтому:
    • рт.ст. экспортировать первое обязательство в какое-то место
    • сделать какие-либо изменения там
    • импорт
    • рт.ст. его обратно в
  • другого фиксаций может быть привит с помощью регулярного рт.ст. расширения привитой
  • Используйте расширение коллапса (комментируя проверку «это было создано текущим пользователем»), чтобы свернуть результат

В псевдо-командной строке, при условии, интересные фиксаций interesting-0 .. interesting-n:

hg up interesting-0^ 
hg export interesting-0 > /tmp/interesting-0 
vi /tmp/interesting-0 
hg import /tmp/interesting-0 

hg id -r tip # this allows us to identify the new hash of the 'base for collapsing' 

hg graft interesting-1 
# ... 
hg graft interesting-n 

hg collapse -r base-for-collapsing:tip 
# clean up the commit message in your editor. 
# either merge & push; or throw the result away after inspection 
Смежные вопросы