version-control - 将 Mercurial Repository 放在共享网络驱动器中是个好主意吗?

标签 version-control mercurial

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

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

我想这是一个定义我们内部版本控制程序的问题,而不是一个真正的版本控制问题,但我仍然继续问这个问题。因为我觉得我没有足够的经验来做出决定,如果我不能 100% 确定我的理由和手段是有效的,我可能很难强制其他人使用版本控制系统的方式开发商。

编辑:

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

最佳答案

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

事实上,我会删除“不鼓励”并将其替换为“不可能”,并且只使用 hgweb 或 hg serve 为存储库提供服务。 ,前者是长期运行服务器的推荐设置。

关于version-control - 将 Mercurial Repository 放在共享网络驱动器中是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6825804/

相关文章:

svn - 即使 SCM 民意调查没有发现任何变化,Jenkins 构建仍在继续

loops - 善变的预提交无限循环

mercurial - 如何从 Mercurial 克隆中删除工作副本?

git - git merge 时始终使用本地版本的文件(即使 merge 的一侧没有更改)

version-control - 我可以将我的 Mercurial 工作目录移动到另一个位置吗?

git - 为什么你使用 Git 而不是 Mercurial? (或相反亦然。)

python - 在 Windows 上将 Mercurial (hg) 存储库转换为 Git (7)

mercurial - 如何从 Mercurial 导出到化石?

git - 使用 git merge 不相交的分支

windows - 从 Git 存储库获取文件