Eon*_*nil 5 svn integrity multi-user
如果多个用户访问基于文件的SVN存储库同时提交很多东西,SVN能保证数据完整性吗?如果是,如何?或者,如果不是我应该在多用户情况下使用什么服务方法?
从颠覆书:
Subversion 存储库可以由在存储库所在的同一台机器上运行的客户端使用带有 file:// 方案的 URL 同时访问。但是典型的 Subversion 设置涉及从办公室所有计算机上的客户端访问的单个服务器机器,或者可能是世界各地的计算机。
该file://方案有几个问题:
file://方案。这是行不通的。它必须在同一台机器上才能使file://访问方案起作用。svn://和http://设置并不难。我使用 Subversion 作为我自己的个人版本控制系统,并使用该svn://方案。Subversion withhttp://稍微复杂一些,但我可以在大约一个小时内可靠地完成。Subversion 提交被设计为原子的。因此,多个用户同时提交相同的修订号是不可能的。来自颠覆书:
svn commit 操作将对任意数量的文件和目录的更改作为单个原子事务发布。在您的工作副本中,您可以更改文件的内容;创建、删除、重命名和复制文件和目录;然后将一组完整的更改作为原子事务提交。
对于原子事务,我们的意思很简单:要么所有更改都发生在存储库中,要么什么都不发生。Subversion 试图在面对程序崩溃、系统崩溃、网络问题和其他用户操作时保留这种原子性。
每次存储库接受提交时,都会创建文件系统树的新状态,称为修订版。每个修订版都分配有一个唯一的自然编号,该编号比前一修订版的编号大一。新创建的存储库的初始版本编号为 0,仅包含一个空的根目录。