управление версиями: перемещение исправления ошибки / улучшения кода вокруг разработки функций - PullRequest
6 голосов
/ 13 января 2011

У меня есть вопрос рабочего процесса, связанный с Mercurial (возможно, применимый к другим DVCS).

Репо настраивается с использованием стандартной настройки по умолчанию / стабильной.

Вам поручено создать новую функцию и ожидать, что это займет некоторое время (месяц +). Работая над этой функцией, вы сталкиваетесь с ошибкой, которую, по вашему мнению, следует исправить и применить к работе раньше, чем позже. Или, возможно, вы заметили некоторый код, который можно было бы лучше документировать.

Я предполагаю, что вы делаете исправление по умолчанию, а затем переключаетесь на стабильное и делаете исправление снова (вручную или путем применения патча). Это правильно, или вы должны немедленно переключиться на стабильный, сделать изменения там и затем объединить стабильный в дефолт?

Мне кажется, использование патча имеет больше смысла. Вы можете сделать коммит специально для исправления ошибки и применить этот патч по своему усмотрению. Я имею в виду, если ошибка не слишком неприятна, нет необходимости в срочности и нарушении вашего потока. Правильно?

Итак, как вы справляетесь с этой ситуацией?

Спасибо

Ответы [ 2 ]

6 голосов
/ 13 января 2011

Вы можете вернуться к точке ветвления (ревизия B), исправить там ошибку (ревизия X) и затем объединить исправление в обе ветви (M1 и M2):

-----B--o----o---M1----o---> stable
     |          /
     |---------X   bugfix
     |          \
     \--o---o----M2----o-----> feature

Таким образом, вы можете получить свое исправление в каждой ветке с обычными hg merge операциями;патч, трансплантация или MQ'ы не требуются.

Продолжая ту же идею, сделайте шаг вперед: вместо этого вы могли бы вернуться к ревизии, в которой изначально была ошибка.Используя это в качестве основы для исправления, вы будете уверены, что сможете объединить свое исправление с любой веткой, содержащей ошибку.

0 голосов
/ 13 января 2011

После того, как вы сделали небольшой коммит исправления, вы можете использовать Расширение трансплантата Hg и сообщить об этом же исправлении в другой ветке.

Если это не подходит, другой вишневыйВозможности выбора подробно описаны в вопросе SO " Изменения в выборе Mercurial cherry для коммита ".

...