【发布时间】:2011-10-18 19:24:44
【问题描述】:
我目前正在从 svn 迁移到 mercurial。我的需求很简单,我需要对我们公司的 Intranet 进行源代码控制。我到处都能看到通过 IIS 设置远程存储库的示例。我只是不明白我可以在服务器上进行共享。
我仍然可以使用 NTFS 权限在 repos 上设置授权和身份验证吗?
我错过了什么吗?
谢谢
【问题讨论】:
我目前正在从 svn 迁移到 mercurial。我的需求很简单,我需要对我们公司的 Intranet 进行源代码控制。我到处都能看到通过 IIS 设置远程存储库的示例。我只是不明白我可以在服务器上进行共享。
我仍然可以使用 NTFS 权限在 repos 上设置授权和身份验证吗?
我错过了什么吗?
谢谢
【问题讨论】:
将存储库放在文件共享上是可行的,但这不是 Mercurial 团队推荐的方式。
在 HG wiki 上查看 Publishing Repositories 的“共享磁盘”部分:
通常仅限于 Intranet,一般不推荐,因为网络文件系统可靠性的一般问题
请务必同时查看Chris Becke's answer,因为他指出了另一个有效的缺点(具有写入权限的人从网络共享中删除内容,无论是否有意)。
如果您知道(并且可以忍受)这些事情,那么将存储库放在网络共享上无疑是最简单的设置方法。
我的个人经验是,只要 Windows 共享位于“真正的”Windows 机器上,它就可以完美运行。
在工作中,我们在真正的 Windows 服务器上使用共享没有问题,但在家里我遇到了 NAS 的问题(它的行为类似于 Windows 共享,但实际上在 Linux 上运行)。
你可以在这里阅读更多关于我的经历:
Can you 'push' to network share using Mercurial on 64bit Windows 7?
【讨论】:
有很多理由更喜欢可写文件共享。
本质上归结为,通过网络方法进行推送的能力对某人造成的损害是有限的。 另一方面,读/写共享是推送所必需的,但也允许用户删除整个 repo、历史记录和所有内容。
人们(或恶意软件代理)甚至在不调用恶意意图的情况下,就知道导航到随机网络共享并意外地将文件拖到不属于它的地方。
锁定您的 PC 的最佳理由不是因为您的同事觉得使用未锁定的电子邮件帐户向 HR 发送色情内容很有趣,而是因为清洁女工可以用一块抹布和一个键盘做的事情令人惊叹。音乐库应用程序在扫描工作组中的所有共享并仔细“移动”和目录到某人的库时可以找到的内容也令人惊讶。
【讨论】: