При работе с несколькими задачами / ошибками я предпочитаю использовать закладки над именованными ветками.Они не загромождают вашу историю информацией о ветвлении (но это может быть личным предпочтением).
Обычно вы просто работаете над веткой по умолчанию.Чтобы отслеживать эту «основную линию разработки», мы создаем закладку с именем «master» (или как бы вы ее не называли).Теперь, прежде чем приступить к работе с ошибкой X, создайте закладку «bugX».
- hg мастер закладок
- ... по умолчанию работайте на ветке по умолчанию ...
- hg закладка bugX
- hg commit -m "bugX 1"
- hg commit -m "bugX 2"
Затем вы должны работать над ошибкой Y, потому что вы должны, например, ждатьдля ввода кого-то еще.Для этого сначала вернитесь к главной закладке (где вы оставили «основную строку»), создайте новую закладку для ошибки Y и начните работать над ней.
- hg update master
- hg закладка bugY
- hg commit -m "bugY 1"
Youтакже теперь нужно прекратить работу над ошибкой Y, и вы хотите продолжить работу на «главной линии».Сначала вы берете самые последние изменения из центрального репо, а затем начинаете работать над основной веткой.Когда функция закончена, вы можете нажать ее.Обязательно нажимайте только на главную ветку с помощью «hg push -r master»:
- hg update master
- hg pull --rebase
- hg commit -m "новая функция 1"
- hg commit -m "новая функция 2"
- рт.ст. push -r master
Иногда вы можете закончить ошибку X:
- hb update bugX
- ... работать над ошибкой X
- hg commit -m "bugX fixed"
Это исправление теперь должно быть перенесено в ветку master иподтолкнул к центральному репо.Вы можете объединить его с «hg merge bugX» или, что еще лучше, перебазировать его.Когда все будет сделано, удалите закладку bugX:
- hg update bugX
- hg rebase -b bugX -d master
- hg bookmark -f master
- hg закладка -d bugX
- hg push -r master
"hg bookmark -f master" необходим для того, чтобы основная закладка теперь указывала на последний набор изменений bugXкоторый был перебазирован поверх главной ветки (я думаю, что это делается автоматически с помощью Mercurial 2.1).
Теперь эту же процедуру можно выполнить с bugY, и вы получите прямую историю.
В команде вы могли бы даже рассмотреть возможность перемещения главной закладки в центральное хранилище, чтобы ее не поддерживали после извлечения (hg push -B master).
Этот рабочий процесс также описан более подробно илименьше в этом блоге .