如何在推送后自动将远程Merurial存储库保持在提示状态

时间:2018-09-04 08:11:19

标签: mercurial

我在某些文件服务器净共享上创建了一个Mercurial存储库。

如果有人推送更改,是否可以将远程存储库自动更新为tip

因为其他一些人(纯用户)可能会复制存储库内容(而不是由于缺少.hg而进行克隆),并且我希望他们获得最新版本。

由于它是简单NAS上的共享资源,因此,如果推送客户端可以调用此更新,那就更好了。

2 个答案:

答案 0 :(得分:1)

似乎changegroup事件上的钩子可以解决此问题。

将以下行添加到存储库的配置文件(repo / .hg / hgrc)

[hooks]
changegroup = hg update

此解决方案在一个稍微不同的问题上提出: Cloning mercurial repo to the remote host

至少在Windows下,这似乎仅适用于本地存储库。原因是hg尝试在失败的远程路径上运行cmd,因为它不支持UNC路径作为当前目录。

显式添加存储库URL可以解决此问题,但不再与客户端无关。

[hooks]
changegroup = hg update -R %HG_URL%

答案 1 :(得分:0)

您可以将服务器存储库视为“本地工作目录”,然后从您自己的PC拉到该位置。如果您使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="parent"> <input type="text" disabled> <input type="text" disabled> </div> <div class="parent"> <input type="text" disabled> </div> <div class="parent"> <input type="text" disabled> <input type="text" disabled> <input type="text" disabled> </div>,它将自动将工作文件夹更新为最新版本。

执行此操作的一种方法是登录到NAS,并在那里实际运行hg命令行程序。如果没有,您也可以将NAS文件夹安装在本地PC上,然后将chdir挂载到其映射的本地文件夹,然后使用本地hg客户端执行此操作。

这似乎很奇怪,但是Mercurial不在乎哪个是“克隆”,哪个是“服务器”,您可以在工作流中互换它们。