我在服务器上有一个名为“Gold”的存储库,作为我的生产存储库,在服务器上有一个名为“Silver”的存储库,充当开发存储库,然后显然在我的本地客户端上有一个或多个存储库。奇怪的是,当我将变更集从本地开发机器推送到 Gold 时,Silver 也会以某种方式获取变更集。我们在 IIS7.5 上的 Windows Server 2008R2 上运行 Mercurial。
Example:
Server(在服务器上创建金币)
Client(将 Gold 克隆给客户端)
- 汞克隆http://服务器/黄金 http://server/Gold Dev
- cd Dev
- 回声“Foo”> bar.txt
- hg ci -Am“添加文件 bar.txt”
- hg push
此时,客户端和服务器处于同步状态,每个都有一个变更集。
Server(将 Gold 克隆为 Silver - 一个新的开发存储库 - 在服务器上)
Client(提交并推送更改为 Gold - 不触及 Silver)
- 回声“嘶嘶”>嗡嗡声.txt
- hg ci -Am“添加了文件buzz.txt”
- hg push
现在我预计 Gold 有两个变更集,而 Silver 有一个。在我们这里的环境里,黄金和白银都以某种方式拥有两个变更集!我们推送到黄金的任何更改都会自动显示在白银中。这对我来说似乎非常出乎意料——以前有人遇到过这种情况吗?
嗯。这当然不应该发生。有多种方法可以让它发生(使用钩子),但它不应该单独发生。
对于本地克隆(您的hg clone ./Gold Silver
行)mercurial 在幕后使用硬链接来节省磁盘空间,但它会在写入时破坏这些链接。
但是,作为测试,您可以将该行更改为:
hg clone --pull ./Gold Silver
这将使用更多的磁盘空间,但在其他方面是相同的。
我不希望这能解决任何问题,但我想这是一个很好的数据点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)