Переместить начало ветки в Mercurial - PullRequest
3 голосов
/ 29 сентября 2011

Моя проблема похожа на Перемещение Mercurial на новую ветку , но не совсем то же самое.

Мой коллега начал работать над новой функцией и выпустил несколько локальных коммитов. Затем он заметил «О, хорошо, это должно пойти в именованную ветвь» и таким образом создал одну. Проблема в том, что коммиты до этого уже должны были быть в этой ветке. Таким образом, упрощенная история теперь выглядит примерно так:

O 7: default
|
O 6: default
|
|  O 5: newbranch
|  |
|  O 4: default
|  |
|  O 3: default
| /
O 2: default
|
O 1: default

Итак, по умолчанию теперь имеет две открытые головки: 7 и 4. Я бы хотел избавиться от открытой головки 4, но, конечно, все еще 3 и 4 объединены в "основную" default позже, когда мы объединяем newbranch обратно в основную (объединение их сейчас нежелательно, так как это приведет к изменениям в default , которые нам пока не нужны).

Вопрос в том, как лучше всего с этим справиться?

Сделайте --close-branch на 5, создайте новую ветку с 2 и повторно примените ревизии 3-5?

Насколько я понял, нет хорошего способа просто сказать "newbranch начинался с 3 вместо 5" .

Обновление: Поскольку это уже было извлечено другими, я не хочу перебазировать ревизии, о которых идет речь. Заставить коллегу воссоздать / поменять ветки будет в порядке, так как это повлияет только на одного человека вместо 5.

1 Ответ

3 голосов
/ 29 сентября 2011

Чтобы избавиться от дополнительной головы по умолчанию, вы можете:

hg update -r 4
hg commit --close-branch -m "Closed extra default head.  The changes from this branch will be merged along with 'newbranch', once it is complete."

Когда вы в конечном итоге объедините newbranch, это будет включать в себя ревизии 3-5 плюс любые другие, которые вы фиксируете поверх 5.

Единственная потенциальная проблема, связанная с этим, заключается в том, что редакции 3-4 не будут помечены как часть указанной ветви.Если это действительно важно для вас, то вы должны закрыть как дополнительную головку по умолчанию, так и головку newbranch и начать заново с новой веткой, укорененной в ревизии 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...