基于文件的 SVN 存储库可以支持同时多用户情况吗?

Eon*_*nil 5 svn integrity multi-user

如果多个用户访问基于文件的SVN存储库同时提交很多东西,SVN能保证数据完整性吗?如果是,如何?或者,如果不是我应该在多用户情况下使用什么服务方法?

Dav*_* W. 5

从颠覆书:

Subversion 存储库可以由在存储库所在的同一台机器上运行的客户端使用带有 file:// 方案的 URL 同时访问。但是典型的 Subversion 设置涉及从办公室所有计算机上的客户端访问的单个服务器机器,或者可能是世界各地的计算机。

file://方案有几个问题:

  • 它必须在同一台服务器上。有些人将存储库放在 Windows 共享或 NFS 驱动器上,然后让人们安装共享并使用该file://方案。这是行不通的。它必须在同一台机器上才能使file://访问方案起作用。
  • 这是不安全的。这是最大的问题。所有用户都必须对存储库中的文件具有读/写权限,这意味着有人可以删除存储库或在 Subversion 背后乱搞文件。
  • 使用svn://http://设置并不难。我使用 Subversion 作为我自己的个人版本控制系统,并使用该svn://方案。Subversion withhttp://稍微复杂一些,但我可以在大约一个小时内可靠地完成。


Pek*_*ica 2

Subversion 提交被设计为原子的。因此,多个用户同时提交相同的修订号是不可能的。来自颠覆书

svn commit 操作将对任意数量的文件和目录的更改作为单个原子事务发布。在您的工作副本中,您可以更改文件的内容;创建、删除、重命名和复制文件和目录;然后将一组完整的更改作为原子事务提交。

对于原子事务,我们的意思很简单:要么所有更改都发生在存储库中,要么什么都不发生。Subversion 试图在面对程序崩溃、系统崩溃、网络问题和其他用户操作时保留这种原子性。

每次存储库接受提交时,都会创建文件系统树的新状态,称为修订版。每个修订版都分配有一个唯一的自然编号,该编号比前一修订版的编号大一。新创建的存储库的初始版本编号为 0,仅包含一个空的根目录。