我在某些文件服务器净共享上创建了一个Mercurial存储库。
如果有人推送更改,是否可以将远程存储库自动更新为tip
?
因为其他一些人(纯用户)可能会复制存储库内容(而不是由于缺少.hg而进行克隆),并且我希望他们获得最新版本。
由于它是简单NAS上的共享资源,因此,如果推送客户端可以调用此更新,那就更好了。
答案 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不在乎哪个是“克隆”,哪个是“服务器”,您可以在工作流中互换它们。