Windows网络共享上的svn存储库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows网络共享上的svn存储库相关的知识,希望对你有一定的参考价值。

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

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

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

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

答案

Tortoise SVN文档实际上强烈反对它 - 请参阅this link。 。

总结一下:

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

另一答案

另一个问题是类似的,但被问到re:表现:Subversion protocol performance

SVN Book建议您不要将file://协议用于多个用户

Choosing a Server Configuration

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

另一答案

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

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

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

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

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

您不能限制对svn工具的访问,因此您不应使用file:// protocol。

另一答案

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

一个更好,更好,更好的解决方案是建立一个真正的SVN服务器,而不是使用file:// URL。

另一答案

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

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

编辑:我在Stackoverflow上找到了this discussion。似乎使用文件协议没有问题。

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

另一答案

那是对的......

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

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

干杯。

阿尔

另一答案

我们在Windows上的方式是使用Apache来提供我们的文件。 Here我们对此设置非常满意。

以上是关于Windows网络共享上的svn存储库的主要内容,如果未能解决你的问题,请参考以下文章

可以在跨操作系统网络共享上使用 git 吗?

TortoiseSVN 在存储在网络共享上的工作副本上显示日志非常慢

windows2016双击热备不用共享存储

网络共享路径上的 sqliteconnection(通用 Windows 平台)

TortiseSVN svn+ssh 错误:无法连接到 URL 上的存储库...网络连接意外关闭

使用 Python,如何访问 Windows 网络上的共享文件夹?