Подтвердить что ты не робот

Могу ли я отметить ветку как "не нажимать"?

Я использую названные ветки в Mercurial.

При этом я создал одну ветку, называемую игровой площадкой, где я могу попробовать различные дурацкие эксперименты. Я никогда не собираюсь объединять эту ветку в какие-либо другие, и я никогда не хочу подталкивать ее в наш основной репозиторий.

С момента создания, каждый раз, когда я делаю push, мне говорят, что я добавил новую ветку, и мне нужно использовать флаг --new-branch. На данный момент hg push -b default (или любая ветка, которую я нажимаю) работает нормально, но это раздражает. Есть ли способ подавить это сообщение, позволив Hg знать, что мне не интересно толкать эту ветвь когда-либо?

4b9b3361

Ответ 1

Начиная с Mercurial 2.1 (выйдет через неделю 1 февраля), вы можете пометить свои изменения секретный, чтобы они не были перенесены в другой репозиторий. Для этого вы используете новую команду hg phase:

$ hg phase --force --secret .

Отметьте текущую родительскую ревизию рабочего каталога (.) как находящуюся в фазе secret. Секретные комплекты изменений локальны для вашего репозитория: их не будут толкать или вытаскивать. Теперь нажатие выглядит следующим образом:

$ hg push
pushing to /home/mg/tmp/repo
searching for changes
no changes to push but 2 secret changesets

В старых версиях Mercurial нет эквивалентного механизма. Лучше всего создать локальный клон для тех наборов изменений, которые вы не хотите нажимать.

Ответ 2

Обновление:

Mercurial 2.1 представил команду hg phase, которая позволяет пользователям контролировать, какие наборы изменений обмениваются с удаленными репозиториями. @MartinGeisler ответ на этот вопрос подробно описывает этот метод.

Исходный ответ:

Если вы хотите создать локальную ветвь своего кода, у вас есть пара вариантов. Вы можете hg clone репозиторий, который будет локально создавать ветвь всего репозитория в вашей файловой системе. Другая альтернатива - вы можете попытаться использовать расширение Mercurial, например LocalbranchExtension.

Существует много способов разветвления в Mercurial без использования именованной ветки. Просто найдите метод, который соответствует вашим потребностям.

Дополнительная литература: http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/

Ответ 3

В дополнение к превосходному ответу выше, касающемуся этапов, вы также можете указать "путь по умолчанию" (в разделе [paths] вашего .hgrc) для ссылки на локальный репозиторий:

[paths]
default = ...
default-push = .

Это приведет к тому, что все исходящие изменения будут сравниваться с указанным репозиторием. В этом случае сравнение исходящих наборов изменений в вашем локальном репозитории В ваш локальный репозиторий нечего нажать.

Вы все равно можете вытащить/обновить/слить из основного репозитория, но никакое нажатие никогда не отправит ничего обратно в этот основной репозиторий.

Если вы работаете с несколькими компьютерами/репозиториями, вы можете установить один из них, как описано выше, и настроить остальные, чтобы указать путь по умолчанию для указания на сервер, который подталкивает к себе. Таким образом, другие машины могут нажать/вытащить в локальный центральный репозиторий, и эти изменения никогда не покинут вашу тщательно сконфигурированную коллекцию репозиториев.