Клон Mercurial из ветки

У нас есть репозиторий с тремя именованными ветвями, я хотел клонировать одну из веток. Есть ли для этого непостоянная команда? Если я предоставлю путь (ветки) с помощью hg clone, я получу ошибку 404.


person Abidi    schedule 28.12.2010    source источник


Ответы (5)


hg clone http://your/repo -r branchname должен помочь.

person Benjamin Pollack    schedule 28.12.2010
comment
Есть ли способ клонировать код из этой ветки от одной конкретной ревизии до конца этой ветки .. Я пробовал hg clone [email protected]/TEAM/REPO -r BRANCH_NAME --startrev REVISION_NUMBER; но выдает ошибку hg clone: ​​option --startrev not found - person Nevin Raj Victor; 12.02.2015

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

person Jay Maynard K5ZC    schedule 28.12.2010
comment
в основном я всегда работал над Subversion, я был бы очень признателен, если бы вы могли указать мне на ресурс, который объясняет это немного больше, поскольку большинство ресурсов просто говорят о том, КАК делать в hg. - person Abidi; 28.12.2010
comment
Я сам совершаю этот переход. Фундаментальный сдвиг, который вам необходимо сделать, заключается в том, что вы больше не работаете только с локальной копией Mercurial. У вас есть репозиторий, такой же, как тот, из которого вы клонируете. Когда вы делаете hg pull, вы фактически обновляете свой репозиторий с изменениями, записанными в восходящем потоке; когда вы hg push, вы вносите изменения в это. Все, что делает hg update, - это заставляет файлы в вашем каталоге отражать состояние репозитория для любой версии, тега ветки или того, что вы выберете. - person Jay Maynard K5ZC; 28.12.2010
comment
Одна из причин для этого заключается в том, что вы используете Mercurial только в одностороннем порядке, например, для развертывания изменений на сервере. В этом случае вы действительно не хотите, чтобы непроизводственные ветки копировались. - person O'Rooney; 15.06.2016

hg clone <URL> -b BRANCHNAME клонировать отдельную ветвь, согласно запросу

person Lazy Badger    schedule 12.04.2013

Я знаю, что этот пост очень старый, но у меня был тот же вопрос. Нашел вот такую ​​уловку:

hg clone /path/to/your/repo -r 0
hg pull -u -b branchname
person BlaX    schedule 12.04.2013
comment
Возможно, вы захотите упомянуть, в чем разница при использовании этого. Видимо, за кулисами есть небольшие изменения. - person Ti Strga; 24.03.2014

Я использую Mercurial-4.0.2. В этом случае мы можем указать имя ветки, добавив имя ветки с символом # в URL-адрес клона.

e.g.

hg clone https://user@cloneurl/my_product#MY_BRANCH

hg clone --verbose https://user@cloneurl/my_product#MY_BRANCH "C:\myCode"
person apm    schedule 28.02.2017
comment
Прекрасно работает! - person John Slegers; 27.09.2017