我正在寻找某种别名,hg push
因此它会自动执行hg pull
, hg merge
,hg commit
和hg push
本身。
显然,如果出现任何问题,例如合并冲突,它将停止。
到目前为止,我写了这个,但是当你没有任何东西可以拉时它不起作用:
hg pull -u && hg merge && hg ci -m "merge" && hg push
当您没有任何要合并的内容时,它将失败:
abort: there is nothing to merge
我正在寻找某种别名,hg push
因此它会自动执行hg pull
, hg merge
,hg commit
和hg push
本身。
显然,如果出现任何问题,例如合并冲突,它将停止。
到目前为止,我写了这个,但是当你没有任何东西可以拉时它不起作用:
hg pull -u && hg merge && hg ci -m "merge" && hg push
当您没有任何要合并的内容时,它将失败:
abort: there is nothing to merge
一个名为fetch的内置扩展可以完成所有这些工作,但 push 除外:
在最简单的情况下,hg fetch 的行为类似于
hg pull -u
- 它从远程存储库中提取更改到本地存储库并更新工作目录。(这类似于 Subversion 或 CVS 中的“更新”命令。)如果拉取的更改需要合并,则 fetch 扩展会尝试 an
hg 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