推送后如何自动将远程 mercurial 存储库保持在提示位置
How to automatically keep remote mercurial repository at tip after pushes
我在一些文件服务器网络共享上创建了一个 mercurial 存储库。
如果有人推送更改,是否可以自动将远程存储库更新为 tip
?
因为其他一些人(纯粹的用户)可能会复制存储库内容(而不是克隆,因为缺少 .hg),我希望他们获得最新版本。
由于它是简单 NAS 上的共享,如果推送客户端可以调用此更新就好了。
您可以将服务器存储库视为您的 "local working directory",然后从您自己的 PC 拉到该位置。如果你使用 hg pull --update
那么它会自动更新工作文件夹到最新的。
一种方法是登录到您的 NAS 并实际 运行 hg 命令行程序。如果没有,您也可以在本地 PC 上挂载 NAS 文件夹,然后 chdir 到其映射的本地文件夹,并使用本地 hg 客户端执行此操作。
这似乎是一件奇怪的事情,但 Mercurial 不关心哪个是 "clone" 哪个是 "server",您可以在您的工作流程中互换它们。
看来 changegroup
事件上的钩子可以解决这个问题。
将以下行添加到存储库的配置文件 (repo/.hg/hgrc)
[hooks]
changegroup = hg update
这个解决方案是针对一个略有不同的问题提出的:
Cloning mercurial repo to the remote host
至少在 windows 下,这似乎只适用于本地存储库。原因是,hg
在失败的远程路径上尝试 运行 a cmd
,因为它不支持 UNC 路径作为当前目录。
显式添加存储库 url 修复了此问题,但它不再独立于客户端。
[hooks]
changegroup = hg update -R %HG_URL%
我在一些文件服务器网络共享上创建了一个 mercurial 存储库。
如果有人推送更改,是否可以自动将远程存储库更新为 tip
?
因为其他一些人(纯粹的用户)可能会复制存储库内容(而不是克隆,因为缺少 .hg),我希望他们获得最新版本。
由于它是简单 NAS 上的共享,如果推送客户端可以调用此更新就好了。
您可以将服务器存储库视为您的 "local working directory",然后从您自己的 PC 拉到该位置。如果你使用 hg pull --update
那么它会自动更新工作文件夹到最新的。
一种方法是登录到您的 NAS 并实际 运行 hg 命令行程序。如果没有,您也可以在本地 PC 上挂载 NAS 文件夹,然后 chdir 到其映射的本地文件夹,并使用本地 hg 客户端执行此操作。
这似乎是一件奇怪的事情,但 Mercurial 不关心哪个是 "clone" 哪个是 "server",您可以在您的工作流程中互换它们。
看来 changegroup
事件上的钩子可以解决这个问题。
将以下行添加到存储库的配置文件 (repo/.hg/hgrc)
[hooks]
changegroup = hg update
这个解决方案是针对一个略有不同的问题提出的: Cloning mercurial repo to the remote host
至少在 windows 下,这似乎只适用于本地存储库。原因是,hg
在失败的远程路径上尝试 运行 a cmd
,因为它不支持 UNC 路径作为当前目录。
显式添加存储库 url 修复了此问题,但它不再独立于客户端。
[hooks]
changegroup = hg update -R %HG_URL%