版本控制-将Mercurial存储库放在共享的网络驱动器中是个好主意吗?

我们是一个由3个开发人员组成的小组(老板,我和另一个主要在远程工作的开发人员),我的任务是为Mercurial HG设置存储库服务器.

看来我可以简单地将集中式存储库放在共享的网络驱动器上.这将非常容易设置,但是似乎有一个风险,我们每个人都可能滥用直接使用/修改源存储库的便利.这就是为什么我正在考虑使用HgWebdir服务器作为控制对中央存储库访问的方式.因此,不鼓励直接访问中央源存储库,但为以防万一,共享驱动器将在此处.

我想这是定义我们内部版本控制程序的问题,而不是真正的版本控制问题,但是我仍然要提出这个问题.由于我觉得我没有足够的经验来做出决定,并且如果我不能100%地确定自己的理由是有效的,那么我可能很难强制其他人使用版本控制系统开发人员.

编辑:

我可以看到与版本控制软件一起使用的共享文件夹上存在潜在问题.但是,有人想解释一下当推送到共享文件夹时幕后发生了什么吗?我的理解是共享驱动器本质上是共享链接/快捷方式,因此对于共享驱动器,本地计算机上的Mercurial仅持有该链接的锁,但事实是每个用户计算机可能拥有不同的Mercurial实例来保存该链接.链接的锁,而服务器的Mercurial实例将在物理驱动器上保留其自己的链接.我可以看到它很复杂,但是它将如何失败?我可以理解结论,但我自己无法将事实与结论联系起来

最佳答案
您不应将Mercurial存储库放置在网络服务器上的共享文件夹上,因为在这种设置下,Mercurial不能在所有情况下可靠地持有锁,并且在推送到该中央存储库期间,锁对于避免损坏存储库至关重要.

实际上,我将删除“不鼓励使用”,并将其替换为“不可能”,并且仅使用hgweb或hg serve服务存储库,对于长期运行的服务器,建议使用前者.

转载注明原文:版本控制-将Mercurial存储库放在共享的网络驱动器中是个好主意吗? - 代码日志