2013-08-24 4 views
5

Я работал в branch-a, когда обнаружил несвязанную ошибку, которая должна быть исправлена ​​в ветке default. Итак, я хотел бы внести некоторые из моих изменений в default, а затем объединить default в текущую ветку и продолжать работать.hg: Зафиксировать некоторые изменения в другой ветке

Насколько я знаю, Mercurial не позволяет совершать прямо в другую ветку, поэтому мне нужно сначала переключиться на ветвь по умолчанию. Проблема в том, что я не могу просто проверить ветку по умолчанию, потому что другие изменения могут вызвать конфликты. Один рабочий процесс, о котором я могу думать, - это отложить, проверить по умолчанию, удалить только файлы, относящиеся к исправлению, фиксации, checkout branch-a, merge default и, наконец, удалить остальные файлы. Есть ли более простой способ сделать это?

ответ

0
  • Commit только подмножество файлов, связанное с branch-a изменений (дополнительно использовать силу расширения записи, если Bugfix и изменения, филиал-а, случаются в некотором файле (ы) - совершающий только необходимые ломти файла), как ревизия

Если вы не MQ Extension:

  • Зафиксируйте остальные изменения в branch-a как B набора изменений (ребенка А)
  • Rebase B (с Rebase Ext ension) ревизия в default ветви с --keep опции в Одере, чтобы B в исходном месте также

Если у вас есть добавочный MQ

  • Создать новый патч с рабочим режем изменения
  • Исключить MQ-патча
  • Обновление default
  • Применить патч
  • тест, тест ...
  • Finish патч (конвертировать в постоянной ревизией)
  • Прививка это только ревизии в branch-a филиал
+0

Спасибо! Я только смутно знал о переустановке, но теперь я вижу в этом смысл. – alekop

+0

Полезно знать способы переустановки и mq-patch для этого. Однако полка -> switch branch -> unhelve кажется мне проще. Спасибо, в любом случае. –

Смежные вопросы