mercurial自动推送每次提交

Rei*_*ica 44 mercurial automation

我非常熟悉颠覆工作流程以及99.9%的时间我的计算机连接到互联网的事实,我不喜欢分别做'hg ci'和'hg push'.

我记得bzr有一个'checkout'命令,可以绑定后续的'commit'命令,直接自动提交到服务器('push').

mercurial有类似的东西吗?

PS:写一个运行'hg ci $*&& hg push'的shell脚本或别名将是我做的最后一件事.

Ste*_*osh 56

成功提交后,您可以添加一个钩子来运行push.

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

[hooks]
commit.autopush = hg push
Run Code Online (Sandbox Code Playgroud)

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

  • 你在你的仓库希望自动推送.
  • 您可以使用hg -R ~/another-repo-that-autopushes commit在不同的回购该承诺不会自动推送.
  • hg push钩子最终会推送当前目录中的更改而不是您提交的更改吗?

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

始终运行可执行挂钩,并将其当前目录设置为存储库的根目录.

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

  • @max:而不是使用`commit.autopush = hg push` do`post-commit.autopush = hg push`.提交后挂钩在commit命令成功完成后运行.只要在本地存储库中创建变更集,就会运行提交挂钩.有关详细信息,请参见http://linux.die.net/man/5/hgrc. (11认同)