Позвольте мне притвориться, что вы задаете немного другой вопрос: Я удалил часть своей истории репозитория, как мне передать это изменение в репозитории других разработчиков?
Предложения Mercurialнет способа распространения вскрытия таким же образом, как и при добавлении наборов изменений.Таким образом, вы должны придумать свой собственный путь.
Например, у Bitbucket есть список обновлений (на странице сводки репо, если у меня хорошо работает память).Если вы делаете полосу, Bitbucket отображает там что-то вроде этого:
Changeset 12345abcdef был удален из хранилища, пожалуйста, запустите hg strip 12345abcdef
локально.
Когда нам пришлосьРаспространение вскрытия части старой ветки в нашем магазине, вот что мы сделали:
- Удалили наборы изменений на сервере.
- Создали пакетный файл с именем
strip.bat
на default
ветвь репо, содержащая команду, которую мы запускаем на сервере, то есть hg strip 1234567890
. - Сказали всем, что когда они не могут толкать, потому что «толчок создает новые удаленные головы» без видимой причины, это означает, чтоони должны запускаться
strip.bat
.
В случае, если нам когда-нибудь понадобится удалить что-то еще раз, мы просто добавляем еще один hg strip
в пакетный файл.
PS Да, лучше не раздевать, например, использовать backout для фиксации обратных наборов изменений.Иногда это не вариант: если вы ошибочно слили ветку a
в ветку b
, когда вы хотели объединить b
в a
, , вы оказались в ловушке .Даже если вы отмените набор изменений для слияния на feature
, объединенные наборы изменений с a
уже помечены как объединенные, и вам будет трудно выполнить еще одно объединение этих ветвей.