【发布时间】:2014-05-15 14:59:02
【问题描述】:
在 Mercurial 上,如果我想合并一个分支,我总是必须分两步执行:
hg merge my_branch
hg ci -m "I just merged my branch"
有没有一种方法可以在单个命令中执行相同的操作(如果发现冲突则中止它)?
hg merge my_branch -ci "I merged my branch"
【问题讨论】:
在 Mercurial 上,如果我想合并一个分支,我总是必须分两步执行:
hg merge my_branch
hg ci -m "I just merged my branch"
有没有一种方法可以在单个命令中执行相同的操作(如果发现冲突则中止它)?
hg merge my_branch -ci "I merged my branch"
【问题讨论】:
会
hg merge my_branch && hg ci -m "I just merged my branch"
可以接受还是只需要给hg 打一次电话?
&& 只有在第一个成功返回时才会执行以下命令。
编辑:
如果您需要将命令作为带参数的别名,这会变得有点复杂,因为别名不接受参数。您可以使用函数并为其命名:
branch_and_commit() { hg merge $1 && hg ci -m $2; } ; alias bac=branch_and_commit
你可以这样称呼它:
bac my_branch_id "this is the comment"
【讨论】:
bac 别名会放在 hgrc 文件中吗?在那里包含它是否有效?
bac 必须移动到 shell-alias 到 .hgrc 中才能拥有hg bac ...
我不建议同时执行这两个操作。主要原因是,在合并冲突期间,您需要在提交之前解决它。因此,当第一个操作失败时,您将处于需要再次提交的状态。
如果您需要这样做,为了简化理想案例工作流程,至少创建一个脚本来处理冲突案例并恢复到起始修订,以便用户可以正常合并和提交。但是使用一个简单的别名最终会给你带来更多的麻烦而不是帮助你。
【讨论】: