分类:
2010-12-08 00:11:35
Subversion是新一代的开源版本控制系统,用以取代CVS。有关Subversion最详尽的资料就是官方的了。它是由开源社区编写的自由图书,已通过O'Reilly Media出版。下面简单介绍一下Subversion在Debian下的安装和配置过程。
安装:
$sudo apt-get install subversion subversion-tools
svnserve是一个轻型的服务器,可以同客户端通过在TCP/IP基础上的自定义有状态协议通讯,客户端通过使用开头为svn://
或者svn+ssh://
svnserve的URL来访问一个svnserve服务器。这一小节将会解释运行svnserve的不同方式,客户端怎样实现服务器的认证,怎样配置版本库恰当的访问控制。
有许多不同方法运行svnserve:
作为一个独立守护进程启动svnserve,监听请求。
当特定端口收到一个请求,就会使UNIX的inetd守护进程临时调用svnserve处理。
使用SSH在加密通道发起临时svnserve服务。
以Windows service服务方式运行svnserve。
使用svnserve最简单的方式是作为独立“守护”进程运行,使用-d
选项:
$ svnserve -d $ # svnserve is now running, listening on port 3690
当以守护模式运行svnserve时,你可以使用--listen-port=
和--listen-host=
选项来自定义“绑定”的端口和主机名。
一旦svnserve已经运行,它会将你系统中所有版本库发布到网络,一个客户端需要指定版本库在URL中的绝对路径,举个例子,如果一个版本库是位于/usr/local/repositories/project1
,则一个客户端可以使用svn://host.example.com/usr/local/repositories/project1
来进行访问,为了提高安全性,你可以使用svnserve的-r
选项,这样会限制只输出指定路径下的版本库,例如:
$ svnserve -d -r /usr/local/repositories …
使用-r
可以有效地改变文件系统的根位置,客户端可以使用去掉前半部分的路径,留下的要短一些的(更加有提示性)URL:
$ svn checkout svn://host.example.com/project1 …
Subversion的所有版本化数据都储存在中心版本库中。因此首先,我们需要创建一个版本库:
$ svnadmin create /path/to/repos $ ls /path/to/repos conf/ dav/ db/ format hooks/ locks/ README.txt
这个命令创建了一个新目录/path/to/repos
,并在其中创建了一个Subversion版本库。这个目录里主要保存了一些数据库文件(还有其它一些文件),而不像CVS那样保存着版本化的文件。需要更多版本库创建和维护方面的内容,参见。