2010-05-05 104 views
8

我喜欢在Mercurial中创建命名分支以处理可能需要一段时间才能编码的功能,所以当我按下时,我会执行hg push -r default以确保我只将更改推送到默认分支。但是,每次执行推送或发出命令时都必须记住-r default是一件痛苦的事情。如何更改默认分支以推入mercurial?

所以,我想加入这个配置来解决这个问题我的〜/ .hgrc:

[defaults] 
push = push -r default 
outgoing = outgoing -r default 

的问题是,这些配置线并不是真正的违约,他们是别名。他们按预期工作,直到我尝试执行hg push -r <some revision>。而我设置的“默认”只是抹去了我传入的修订版(我看到defaults are deprecated,但别名具有相同的问题)。

我试过四处寻找,但我找不到任何可以让我设置默认分支来推动并允许我在必要时覆盖它的任何东西。任何人都知道我可以做的其他事情?

ps:我意识到我可以为每个分支分开克隆,但我宁愿不这样做。很难切换目录,特别是当你有共享配置或编辑工作区时。

回答

5

我不认为你可以用纯粹的水银做到这一点,因为它只有一个克隆,只有那个分支(我刚才建议,直到你说它不是你的那杯茶)。如果它真的杀了你,你可以创建一个像一个小包装脚本:

#!/bin/sh 
HG=/full/path/to/hg # executable 
if echo $* | grep -P -q -- 'push.*\s-r($|\s)' ; then 
    $HG $* 
else 
    $HG $* -r default 
fi 

将其命名为“汞”,并把它早些时候在你的路径。

+0

我不得不修改一些脚本,使其不加“-r默认”比推传出其他命令,但非常感谢您在正确的方向推。 – timmfin 2010-05-10 17:56:28

1

您是否正在使用Tortoise HG?完全恢复到明确的分支名称将导致Tortoise HG在后续提交过程中记住您正在处理的分支。我不确定它从中收集到什么元数据。

hg up -r {branchname} 

例如,

hg up -r dev 
相关问题