У нас есть репозиторий с двумя именованными ветками в нем: dev
и production
. Также есть default
ветка, которую мы не используем. К сожалению, всякий раз, когда люди клонируют репозиторий, он автоматически помещает их в default
, и у нас возникают проблемы, потому что люди непреднамеренно соглашаются на это.
Есть ли способ удалить default
ветвь, или отключите ее, или установите Mercurial так, чтобы клоны автоматически запускались на dev
филиал?
Этот ответ уже устарел: теперь вы можете добавить @
закладка и Mercurial 2.4 и более поздние версии автоматически проверят его на наличие нового клона. Ваши пользователи должны будут внимательно следить за тем, чтобы @
закладка, тем не менее, указала на головку ветки, которую они хотят.
Вы не можете сделать другую ветку default
ветку, под которой я подразумеваю, что вы не можете сказать Mercurial, что хотите branch-X
для проверки в новом клоне. Вы всегда должны делать default
ветка ветка, которую пользователи хотят оформить. Это описано в вики.
Иногда люди пытаются удалить default
филиал. Это можно сделать, не создавая его в первую очередь:
$ hg init repo
$ cd repo
$ hg branch dev
$ hg commit -m "Ha, no default branch!"
Когда нет default
филиал присутствует, hg clone
проверит самый последний набор изменений. Это плохая идея поскольку этот набор изменений изменяется каждый раз, когда что-то помещается в репозиторий. Итак, если у вас есть dev
и prod
в репо, то новый клон проверит «случайный» набор изменений в зависимости от того, где была сделана последняя фиксация. Это еще более сбивает с толку, чем учить людей default
означает «обычная ветка, в которой тебе надо работать по умолчанию».
В ртутная документация есть несколько примеров обработчиков precommit, и один, по иронии судьбы, проверяет имя ветки. В этом примере он проверяет соответствие регулярному выражению. Вы можете настроить его, чтобы убедиться, что имя не "по умолчанию".
Это не может помешать запуску клонов в ветке «по умолчанию», но, по крайней мере, с этой ловушкой никто не может поместить какой-либо код в ветку «по умолчанию».
Есть ли причина, по которой вы не можете просто заниматься разработкой в Default, и когда он будет выпущен в производство, вы затем разделить его на Производство?
ОБНОВИТЬ: учитывая ваш запрос, пробовали ли вы использовать Именованные филиалы явно в ваших командах?