我已经使用 Mercurial 在 GoogleCode 上创建了 Vim 插件项目,但是用户希望将其放在 github 上以便于将其用作 git subrepo(将他们的 ~/.vim/ 及其内的所有插件保存在 github 上)。
就我个人而言,我更喜欢 googlecode 和 hg,而不是 github 和 git,所以我不喜欢将我的项目移到 github,而更喜欢为我的 hg repo 实现某种自动 git 镜像。我读过这些:Hg-Git mercurial 插件,使用 hg-git 同步 git 镜像和创建 Git 镜像并且看起来有些麻烦,可以通过使用两个命令代替一个命令来实现:
hg push
hg push githubmirror
但问题是,你知道,我们大多数人都会hg push
时不时忘记运行第二个。那么,是否可以通过某种方式(使用钩子等)自动执行此操作?
另一个问题 - 有没有更好的方法来制作这样的镜像?也许 GoogleCode 已经提供了对其 hg repos 的 git 访问权限?或者也许可以为 hg repo 创建 git clone 并由第三方自动使其与原始 hg repo 保持同步,甚至无需通知 hg repo 所有者?
答案1
你可以做一些类似提交后钩子的事情。看看http://www.selenic.com/mercurial/hgrc.5.html
钩子
由各种操作(例如开始或完成提交)自动执行的命令或 Python 函数。通过在操作后附加后缀,可以为同一操作运行多个钩子。可以通过更改其值或将其设置为空字符串来覆盖站点范围的钩子。可以通过在新行上为钩子名称添加优先级前缀并设置优先级来对钩子进行优先级排序。如果未指定,则默认优先级为 0。