概述
Subversion (SVN)是一个版本控制系统。它可以用来维护源代码、网页、文档等文件的当前以及历史上的所有版本。有很多开源软件的源代码是由Subversion来管理的,比如Apache、KDE、GNOME、GCC、Python、Samba等等。Sourceforge.net和Tigris.org也使用Subversion来提供服务。很多商业软件也使用Subversion。
安装
首先要安装apache,参看apache
安装subversion
aptitude install subversion
安装apache的svn模块libapache2-svn:
aptitude install libapache2-svn
配置
首先要创建svn仓库。以下命令在/svroot/project中创建一个svn仓库,用于存放文件:
mkdir /svnroot/ svnadmin create /svnroot/project chown -R www-data:www-data /svnroot/project/
在/etc/apache2/sites-available/default文件末尾添加:
<Location /svn/project> DAV svn SVNPath /svnroot/project/ </Location>
上述配置,任何人都由完全的权限。要控制访问的权限,可以在上述<Location>块的中间添加:
AuthType Basic AuthName "Subversion repository" AuthUserFile /etc/svnpasswd Require valid-user
此时,对仓库的所有读写操作都需要先进行用户帐号的验证。其中,/etc/svnpasswd为用户帐号文件。
如果希望仓库对于任何人可读,只有登录的帐户可写,则可以用如下配置
AuthType Basic AuthName "Subversion repository" AuthUserFile /etc/svnpasswd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept>
使用
此时,在客户端就可以通过svn命令来访问这个svn仓库了。通过如下命令可以取出仓库里面最新的文件:
svn co http://[email protected]/svn/project/
在取出的文件夹内创建一个新的文件,比如test.txt,要将其添加到仓库中去使用:
svn add test.txt
要将原来有的文件从仓库中删除,可以用:
svn delete nouse.txt
要将修改递交到服务器上去,使用命令:
svn commit
要检查服务器上的文件有没有更新过:
svn update