如何为mercurial编写一个智能推送,在推送之前进行拉合并?
我想为如何为mercurial编写一个智能推送,在推送之前进行拉合并?,mercurial,Mercurial,我想为hg push创建一个别名,这样它就可以自动执行hg pull,hg merge,hg commit和hg push 显然,如果出现任何问题,比如合并冲突,它将停止 到目前为止,我写了这篇文章,但是当你没有任何东西可以拉的时候,它就不起作用了: hg pull-u&&hg merge&&hg ci-m“merge”和&hg push 当您没有要合并的内容时,它将失败: 中止:没有要合并的内容名为的内置扩展执行所有这些操作,但推送: 在最简单的情况下,hgfetch的作用类似于hgpull-
hg push
创建一个别名,这样它就可以自动执行hg pull
,hg merge
,hg commit
和hg push
显然,如果出现任何问题,比如合并冲突,它将停止
到目前为止,我写了这篇文章,但是当你没有任何东西可以拉的时候,它就不起作用了:
hg pull-u&&hg merge&&hg ci-m“merge”和&hg push
当您没有要合并的内容时,它将失败:
中止:没有要合并的内容
名为的内置扩展执行所有这些操作,但推送:
在最简单的情况下,hgfetch的作用类似于hgpull-u
——它将远程存储库中的更改拉入本地存储库,并更新工作目录。(这类似于Subversion或CVS中的“update”命令。)
如果拉取的更改需要合并,则获取扩展将尝试执行hg merge
,然后执行hg commit
启用扩展,然后执行以下操作:
$ hg fetch && hg push
不过,考虑做ReBASE(快速向前合并),而不是常规合并。这有助于保持沿袭不受无休止的“合并”提交的影响,如果您保持原始变更集,则与常规合并一样安全
事实上,在处理单个任务时,我通常的工作流程如下:# edit some files, test
$ hg commit
# edit some more files, test
$ hg commit
$ hg pull --rebase
$ hg push