我想从远程存储库中提取最新的变更集,同时将我的本地存储库更新为某个tag
。类似于hg fetch
或hg pull -u
的内容,但标签更新。在两行代码中,这是:
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 :(得分:3)
对于香草Mercurial,没有任何指令可以拉动&更新到某个标签,修订版或其他任何内容。
hg pull
hg update mytag
或
hg pull
hg update -r REVNUMBER
这项工作会很好,我不会用别名和函数使它复杂化,这样可以避免我只做一个额外的命令。
答案 1 :(得分:1)
如果您正在使用命令行,这将对您有所帮助。
首先发挥作用。
function pullandup(){ hg pull; hg up $1; }
$1
将被第一个命令行参数替换。因此,此函数首先执行hg pull
,而不是将命令行参数和updates
工作目录添加到指定的版本/书签/标记。
您可以创建此别名并调用该函数。
alias pull_up='function pullandup(){ hg pull; hg up $1; };pullandup'
运行
pull_up mytag
将首先提取所有最新的变更集,并将您的工作目录更新为mytag
。
与其他终端合作时可能存在差异,这个是BASH。