Переименовать выделенную ветвь в Mercurial

Mercurial - каковы шаги, необходимые для переименования ветви после ее создания и фиксации (как локально, так и в Центральном репозитории).

например, я создал ветку под названием Zelda, а затем зафиксировал и толкнул в центральный репозиторий. Теперь я хочу изменить название ветки в кровь.

есть ли расширение, которое решает эту задачу? Каким может быть долгий путь в дополнение к любому решению расширения?

2 ответов


короткий ответ:нет.

длинный ответ, Mercurial ветви имена прикреплено к наборам изменений. Если у вас есть несколько наборов изменений, совершенных в ветке Зельда и отдано (т. е. подтолкнуто к центральному РЕПО), нет никакого способа переименовать эту ветвь без повторного создания этих наборов изменений, что означает переписывание истории.

даже если вы удалите эти наборы изменений как в вашем РЕПО, так и в Центральном РЕПО, то воссоздайте их как принадлежащие ветви triforce, и нажмите" переименованную " ветку снова, все ваши сотрудники в конечном итоге будут иметь две копии наборов изменений, один набор на ветке Зельда, еще один на ветке triforce.

Итак, да, то, что вы должны сделать, описано в https://stackoverflow.com/a/7245187/67988. Цитата оттуда, скорректированная на ваши названия ветвей, т. е. Зельда будет ли закрыта старая ветка и triforce новый филиал будет создан.

hg update zelda
hg commit --close-branch -m "mgmt: Close branch zelda"
hg branch triforce
hg commit -m "mgmt: Create branch triforce"
hg push --new-branch

П. С. Если никто еще не вытащил из центрального РЕПО, вы можете попробовать стриптиз Зельда оттуда. Или, если у вас есть доступ ко всем ПК других разработчиков (при условии контролируемой среды), и действительно хотите пойти по одной очень опасной дороге, вы можете очистить эту ветку от всех репозиториев. Это определенно не считается хорошей практикой и может использоваться только в качестве крайней меры.


на mutable-расширение ветвей может дать иллюзию переименования ветви.