我希望为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
答案 0 :(得分:2)
名为fetch的内置扩展程序可以完成所有这些操作,只需按下:
在最简单的情况下,hg fetch的作用类似于
hg pull -u
- 它将更改从远程存储库拉到本地存储库并更新工作目录。 (这类似于Subversion或CVS中的“更新”命令。)如果提取的更改需要合并,则提取扩展会尝试
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