Как сохранить наборы изменений в фазе "черновик" на hg push?
Как я могу помешать Mercurial переводить наборы изменений в фазу "public" в операциях push? Я хочу, чтобы они остались "черновиками".
Я много перебазирую и гистедит, и репозиторий, к которому я обращаюсь, предназначен только для меня. И необходимость постоянно менять фазу - это неприятность.
4 ответа
То, что документация не ясно показывает, является:
Изменение фазы при толчке не является чисто локальным решением. - После "загрузки" наборов изменений клиент запрашивает у сервера обновления относительно фаз фиксации, и сервер обычно говорит, что они теперь "общедоступны".
Таким образом .hgrc
-snippet
[phases]
publish = False
должен быть установлен на сервере, что препятствует обычному фазовому переходу. Затем сервер сообщит о фазах так же, как они были отправлены.
Bitbucket имеет опцию для этого в Настройки → Сведения о репозитории → Фазы.
Самый прямой способ сохранить фазу на draft
это настроить удаленный сервер как "не публикуемый", как вы уже обнаружили.
Но есть и второй способ, который может быть полезен для некоторых, если конечный сервер по какой-либо причине не может быть настроен как "не публикуемый": Используйте pull
вместо push
, Извлечение доступно только для чтения, поэтому, если вы можете настроить рабочий процесс (например, через локальный псевдоним), чтобы удаленные извлекали изменения из локального репо, они останутся в фазе draft
,
https://www.mercurial-scm.org/wiki/Phases
A repository is "publishing" by default. To make a repository non-publishing, add these lines to its hgrc configuration:
[phases]
publish = False
Краткий ответ: нет
Если вы хотите переписать историю как локально, так и на push-target, вы должны
- включить (с обеих сторон)
- Понимаю
- использовать расширение Evolve (пока экспериментальное)