Задержка может быть осуществлена несколькими способами в Mercurial.Самый простой способ - просто никуда не толкать.После того, как вы вернетесь в историю с
$ hg update 3200
, вы можете использовать
$ hg push -r .
, чтобы перейти только до версии 3200. .
важен - это означает, что родительская версия рабочей копии, который в данном случае равен 3200. Редакция 3200 не будет «наконечником» в вашем локальном хранилище, поскольку у вас все еще есть ревизии 3201–3206, а ревизия с самым высоким номером - всегда , что мы называем «подсказкой».Другими словами, история выглядит следующим образом:
[3199] -- [3200] -- [3201] ... [3205] -- [3206]
^ ^
"." "tip"
, где я отметил текущую родительскую версию рабочей копии и ревизию подсказки.
Когда вы начинаете работать на основе версии 3200,график изменится на
[3199] -- [3200] -- [3201] ... [3205] -- [3206]
\
\-------------------------------- [3207]
^
".", "tip"
Пожалуйста, постарайтесь не добавлять слишком много акцента на «совет».Он постоянно меняется и вообще не очень интересен.Если вы вернетесь к 3206 и сделаете коммит, то tip будет обозначать вновь созданную ревизию 3208 в вашем хранилище.В другом хранилище tip может быть чем-то другим, в зависимости от того, что было извлечено из вас и когда было извлечено.
Если вам часто нужно сделать hg push -r .
, тогда я предлагаю вам создать псевдоним для него.Такой псевдоним был бы более мягким толчком и поэтому мог бы называться "толчком" :
[alias]
nudge = push -r .
С этим в вашем наборе инструментов вы всегда можете сделать
$ hg nudge
чтобы отправить наборы изменений, которые вы только что создали, на сервер, не беспокоясь об отправке любых других веток, которые вы могли бы приостановить.
Наконец, помните, что вы можете использовать
$ hg update 3206
$ hg commit --close-branch -m "Abandoning this line of development"
, чтобы пометить набор изменений 3206 как «закрытый».Это означает, что он не будет отображаться в hg heads
и не будет рассматриваться для объединения при запуске hg merge
.Вам будет необходимо использовать hg push --force
, если вы отправите его на сервер, но это нормально, поскольку вы не создаете несколько открытых головок, вы просто добавляете еще одну закрытую головку.
проблема с несколькими открытыми головами в том, что новый hg clone
может обновиться до одного из них, и это может сбить с толку - люди не будут знать, с чего начать.В последних версиях Mercurial hg clone
не будет обновляться до закрытых головок, поэтому вы избежите этой проблемы.
Вы можете заново открыть закрытую головку, просто сделав дочерний коммит на его основе.Это означает, что вы можете временно закрыть линию разработки без каких-либо побочных эффектов, за исключением примечания на графике о том, что ветка была закрыта в какой-то момент.