Моя проблема похожа на Перемещение 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.