我们是一个由 3 个开发人员组成的小团队(老板,我和另一个主要在远程工作的开发人员),我的任务是为 Mercurial HG 设置一个存储库服务器。
似乎我可以简单地将我们的集中存储库放在共享网络驱动器上。设置起来非常容易,但似乎我们中的任何人都有可能滥用直接工作/修改源存储库的便利性。这就是为什么我正在考虑使用 HgWebdir 服务器作为控制对中央存储库的访问的一种方式。因此不鼓励直接访问中央源存储库,但共享驱动器将在此处以防万一。
我想这是一个定义我们内部版本控制程序的问题,而不是一个真正的版本控制问题,但我仍然继续问这个问题。因为我觉得我没有足够的经验来做出决定,如果我不能 100% 确定我的理由和手段是有效的,我可能很难强制其他人使用版本控制系统的方式开发商。
编辑:
我可以看到使用版本控制软件的共享文件夹存在潜在问题。但是,当推送到共享文件夹时,有人愿意多解释一下幕后发生的事情吗?我的理解是共享驱动器本质上是一个共享链接/快捷方式,因此对于共享驱动器,本地机器上的 Mercurial 仅持有该链接的锁,但事实是每个用户机器可以有一个不同的 Mercurial 实例持有该链接链接的锁,而服务器的 Mercurial 实例将在物理驱动器上保存自己的链接。我可以看到它很复杂,但是它怎么会失败呢?我能理解结论,但我自己无法将事实与结论联系起来
最佳答案
您不应将 Mercurial 存储库放在网络服务器上的共享文件夹中,因为 Mercurial 在这种设置中无法在所有情况下可靠地保持锁定,并且在推送到该中央存储库期间,锁定对于避免损坏存储库至关重要。
事实上,我会删除“不鼓励”并将其替换为“不可能”,并且只使用 hgweb 或 hg serve
为存储库提供服务。 ,前者是长期运行服务器的推荐设置。
关于version-control - 将 Mercurial Repository 放在共享网络驱动器中是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6825804/