2

我正在寻找某种别名,hg push因此它会自动执行hg pull, hg merge,hg commithg push本身。

显然,如果出现任何问题,例如合并冲突,它将停止。

到目前为止,我写了这个,但是当你没有任何东西可以拉时它不起作用:

hg pull -u && hg merge && hg ci -m "merge" && hg push

当您没有任何要合并的内容时,它将失败:

abort: there is nothing to merge

4

1 回答 1

2

一个名为fetch的内置扩展可以完成所有这些工作,但 push 除外:

在最简单的情况下,hg fetch 的行为类似于hg pull -u- 它从远程存储库中提取更改到本地存储库并更新工作目录。(这类似于 Subversion 或 CVS 中的“更新”命令。)

如果拉取的更改需要合并,则 fetch 扩展会尝试 anhg merge后跟hg commit.

启用扩展,然后执行:

$ hg fetch && hg push

不过,请考虑进行 rebase(快进合并)而不是常规合并。--keep这有助于从无休止的“合并”提交中保持沿袭干净,如果您使用原始变更集,则与常规合并一样安全。

事实上,我在处理单个任务时通常的工作流程是这样的:

# edit some files, test
$ hg commit
# edit some more files, test
$ hg commit
$ hg pull --rebase
$ hg push
于 2012-05-21T14:46:29.733 回答