2013-04-30 275 views
0

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

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

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

回答

1

如果您可以访问远程存储库,则可以为更改组进入时安装挂接,并在此时执行hg update发生。

快速检查表明这个in the FAQ(问题4.21),但总结/复制:编辑上的远程储存的.hg/hgrc文件,并添加以下行:

[hooks] 
changegroup = hg update 

每当远程仓库被推向(或执行pull时),它将更新到最新的更改集。

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

+0

谢谢 - 这正是我一直在寻找的(我太过专注于'hg archive') – WoJ 2013-04-30 13:32:41

相关问题