mercurial自动推动每一个提交

对颠覆stream程非常熟悉,99.9%的时间我的电脑连接到互联网,我不喜欢分别做'hg ci'和'hg push'。

我记得bzr有一个“checkout”命令,它会绑定后续的“commit”命令,直接自动提交给服务器('push')。

mercurial有类似的东西吗?

PS:编写一个shell脚本或运行'hg ci $ * && hg push'的别名是我最不想做的事情。

你可以添加一个钩子来成功提交后运行push。

编辑:我只是试了一下,它似乎工作正常。 我将以下内容添加到资源库的.hg/hgrc文件中,我想激活自动推送:

 [hooks] commit.autopush = hg push 

编辑2:另外,你不必担心这样的事情:

  • 您位于不想自动推送的存储库中。
  • 你可以使用hg -R ~/another-repo-that-autopushes commit来提交一个不同的repo, 自动推送。
  • hg push hook会不会hg push当前目录中的更改,而不是您正在提交的更改?

不,不会的 根据我链接的页面:

总是运行一个可执行的钩子,它的当前目录被设置为一个仓库的根目录。

这是一个边缘情况,但Mercurial正确处理它。