9

多台计算机同时访问存储在共享文件系统上的 svn 存储库是否安全?

我正在构建一个应用程序,其中每个 Windows 客户端计算机都有一个本地工作文件集,并且可以定期与团队的其他成员同步。从服务器的角度来看,除了 Windows 共享挂载点之外,我不想依赖任何东西。svn file:// URL 协议是否支持共享文件系统,还是假定文件系统是本地的?

Subversion 文档提到了 Win9x 环境中 BDB 和 FSFS的问题,但我不清楚通过 file:// URL 同时访问的存储库在更新版本的 Windows(或其他操作系统,就此而言)是否安全。

编辑 我正在构建的应用程序将直接使用 svn,因此如果允许安全的并发共享协作环境,我愿意构建一个相对受限的环境。

4

7 回答 7

11

Tortoise SVN 文档实际上强烈反对它 - 请参阅此链接。.

总结一下:

file:// 访问仅用于本地单用户访问,尤其是测试和调试。

于 2009-08-17T19:19:56.267 回答
10

另一个问题类似,但被问到:性能: 颠覆协议性能

SVN Book 建议不要对多个用户使用 file:// 协议

选择服务器配置

不要被让所有用户直接通过 file:// URL 访问存储库的简单想法所诱惑。即使每个人都可以通过网络共享随时使用存储库,这也是一个坏主意。它消除了用户和存储库之间的任何保护层:用户可能意外(或故意)损坏存储库数据库,使存储库脱机以进行检查或升级变得困难,并且可能导致文件权限问题混乱(请参阅名为“支持多种存储库访问方法”的部分)。请注意,这也是我们警告不要通过 svn+ssh:// URL 访问存储库的原因之一——从安全角度来看,它实际上与本地用户通过 file:// 访问相同,并且可能会带来所有相同的问题如果管理员不小心

于 2009-08-17T19:43:55.377 回答
5

从技术角度来看,完全可以对多个用户使用 file:// 协议:

标准 svn 使用不会发生损坏,因为 subversion 在 FSFS 上使用自己的锁定机制。否则 SVN 书会明确说明以避免这种设置,因为它在 BDB 后端中提到了这个问题。

然而,真正的问题是如何限制对存储库数据库的访问以不使用任何其他任意工具访问存储库数据?

如果您使用 file:// 每个人都可以打开您的 SVN 存储库中的每个文件并更改其内容,这肯定会导致存储库损坏。

哎呀,每个用户都可以删除整个存储库!

你不能限制对 svn 工具的访问,所以你不应该使用 file:// 协议。

于 2009-08-17T20:56:21.143 回答
2

在我的脑海中(我无法在网上找到任何信息),我认为如果您使用的是支持 file:// 协议(例如TortoiseSVN)的 SVN 客户端,它应该可以正常工作。

但是,不幸的是我找不到该文档,我记得 file:// 协议和 SVN 存在某些问题。如果可能的话,我建议设置一个 SVN 服务器(VisualSVN工作得非常好并且易​​于设置)而不是依赖于 Windows 共享。

编辑:我在 Stackoverflow 上找到了这个讨论。使用文件协议似乎没有问题。

编辑 2: Neil 的链接是我不久前读过的,并且确实不鼓励文件协议。但是,如果使用 file:// 协议意味着使用和不使用源代码管理之间的区别,我建议至少使用它。一些源代码控制总比没有好。

于 2009-08-17T19:18:53.617 回答
2

我认为您正在为这种方法的问题做好准备。Windows CIFS(Windows 文件共享协议)在 oplocking 和同时修改方面存在许多已知问题,因此它要么会很慢,要么不安全,要么两者兼而有之。

一个非常非常好的解决方案是设置一个真正的 SVN 服务器,而不是使用 file:// URL。

于 2009-08-17T19:23:19.427 回答
2

没错,哥们...

我去过那儿。我也使用文件系统在几台机器之间共享“svn服务器”......我唯一得到的是损坏的文件和大头疼......

安装了一个 svn 服务器(CollabNetSubversion 服务器),现在一切都运行顺利......除了我自己搞砸的时候......但这是另一个故事......

干杯。

阿尔多

于 2009-08-17T19:38:22.860 回答
0

我们在 Windows 上的做法是使用 Apache 来提供我们的文件。 在这里 ,我们对这个设置非常满意。

于 2009-08-17T19:27:18.873 回答