Mercurial:在远程存储库中创建远程存储库的本地副本

时间:2013-04-30 09:41:06

标签: mercurial mercurial-hook

我在桌面上使用Mercurial,然后将本地存储库推送到a centralized server。我注意到这个远程服务器没有在其存储库中保存文件的本地副本(该目录为空,显然除.hg之外)。

使用本地副本填充这些目录的首选方法是什么? (这又由该服务器上的各种不相关服务使用)。

到目前为止,我提到的是使用钩子和hg archive来创建本地副本。这将是一个令人满意的解决方案,但我需要配置每个存储库hgrc文件(这很乏味,但我找不到在/etc/mercurial/hgrc中集中这种方法的方法)。也许是一个全局脚本(在/etc/mercurial/hgrc中,为每个changegroup事件运行)? (在这种情况下,如何在if...then方案中获取存储库名称?)

1 个答案:

答案 0 :(得分:1)

如果您可以访问远程存储库,则可以在更改组进入时安装一个钩子,并在发生这种情况时执行hg update

快速检查显示此in the FAQ(问题4.21),但总结/重复:编辑远程存储库上的.hg/hgrc文件,并添加以下行:

[hooks]
changegroup = hg update

每当远程存储库被推送到(或执行pull时),它都会更新到最新的变更集。

一些注意事项 - 如果对远程端的文件进行了任何更改,则可能会失败(您可以使用hg update -C)。此外,如果您推送了任何匿名分支(您必须有意识地强制执行),您可能无法更新到要更新的内容。