2016-12-21 6 views
1

Я хотел бы вытащить последние изменения из удаленного репозитория и в то же время обновить локальное репо до определенного tag. Нечто похожее на hg fetch или hg pull -u, но с обновлением к тегу. В двух строках кода, это:Mercurial: как вытащить и обновить конкретный тег

hg pull 
hg update mytag 

hg pull --help показывает следующее, но, к сожалению ни один из них не работает для тега:

options: 

-u --update    update to new branch head if changesets were pulled 
-f --force     run even when remote repository is unrelated 
-r --rev REV [+]   a remote changeset intended to be added 
-B --bookmark BOOKMARK [+] bookmark to pull 
-b --branch BRANCH [+]  a specific branch you would like to pull 
-e --ssh CMD    specify ssh command to use 
    --remotecmd CMD   specify hg command to run on the remote side 
    --insecure    do not verify server certificate (ignoring web.cacerts config) 

То, что я пытался:

hg pull -r mytag   only pulls the latest changesets, but no update 
hg pull -u     pulls and updates to tip, but no tag allowed 
hg pull -b mytag   abort: unknown branch 
hg pull -B mytag   abort: remote bookmark mytag not found 

Можно ли это сделать в одной строке?

+0

Просто быть любопытным, почему вы хотите его в одной строке, как и в каком случае? –

ответ

1

Если вы работаете с командной строкой, это поможет вам.

Выполнение функции в первую очередь.

function pullandup(){ hg pull; hg up $1; } 

$1 будет заменен первым аргументом командной строки. Таким образом, эта функция сначала выполняет hg pull, чем принимает аргумент командной строки и updates рабочий каталог указанной версии/bookmark/tag.

Вы можете создать псевдоним этого и вызвать функцию.

alias pull_up='function pullandup(){ hg pull; hg up $1; };pullandup' 

Запуск

pull_up mytag 

будет первым тянуть все последние ревизии и будет обновлять свой рабочий каталог mytag.

При работе с другими терминалами могут быть отличия, это для BASH.

2

С ванилью Mercurial, нет команды вытащить & обновление до определенного тега, ревизии или чего-то еще.

hg pull 
hg update mytag 

или

hg pull 
hg update -r REVNUMBER 

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