0

我在台式机上使用 Mercurial,然后将本地存储库推送到中央服务器。我注意到这个远程服务器在它的存储库中没有保存文件的本地副本(目录是空的,显然除了那个目录.hg)。

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

到目前为止,我想出的是使用钩子并hg archive创建本地副本。这将是一个令人满意的解决方案,但我需要为每个存储库配置一个hgrc文件(这很乏味,但我没有找到将其集中在/etc/mercurial/hgrc. 也许是一个全局脚本(在 /etc/mercurial/hgrc,为每个变更组事件运行)?(在这种情况下,我怎样才能获得要在if...then场景中使用的存储库名称?)

4

1 回答 1

1

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

快速检查在常见问题解答(问题 4.21)中显示了这一点,但总结/重复:编辑.hg/hgrc远程存储库上的文件,并添加以下行:

[hooks]
changegroup = hg update

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

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

于 2013-04-30T12:24:01.310 回答