引用1:关于如何安装和配置,详细见 http://www.howtogeek.com/howto/ubuntu/install-subversion-with-web-access-on-ubuntu/
引用2:关于svn的一些基本操作,详细见 http://svnbook.red-bean.com/nightly/en/svn-book.html#svn.tour.importing
引用1中提到/etc/apache2/mods-enabled/dav_svn.conf的配置,要注意的是<Location /svn> 是一个根配置元素,在dav_svn.conf文件的末尾还有个</Location>元素,不过也被注释了,要记得把它uncomment掉。
引用2中,在初始化svn repository的时候,主要用到两个命令,一个是
svnadmin create 库目录
以创建svn库。
另一个是
svn import 待检入目录 file:///库目录
将本地文件导入前面创建的库目录。
当配置好之后,可以通过浏览器来访问svn,比如http://localhost/svn/,可以看到subversion, 版本0之类的信息。
如果从客户端向url: http://localhost/svn/导入时,发生了类如
引用
Can't open file '/home/xx/applications/svn_server/xx/txn-current-lock': Permission denied
这样的错误,那是因为运行apache的用户对创建的库目录没有写权限,需要做一下授权。策略可以是将库目录chown给apache运行用户,或者将apache运行用户加入到库目录创建用户所在的组中,然后赋给组以写的权限,用chmod 775 组 的命令来搞定。
查看谁运行apache2
ps aux | grep apache
ubuntu下通常是www-data这厮。
如何将一个用户加入到组:
sudo gedit /etc/group
会看到group1:x:1000:user1,user2类似这样的信息,就是说user1,user2同属于group1,多个用户用逗号分隔。保存后记得注销系统,使配置生效。
补充一点,如果你想让dav支持多个svn repository库,那么把dav_svn.conf配置中的SVNPath元素注释掉,改用SVNParentPath
SVNParentPath /home/xxx/applications/svn_server/projects
这样你就可以在/home/xxx/applications/svn_server/projects目录下建立多个svn repository,比如repo1,repo2,然后通过这样的方式来访问不同的库
http://localhost/svn/repo1
http://localhost/svn/repo2
其实配置很简单,轻轻松松就可以在自己的机器上实现代码版本控制。
如果想要实现https这种安全的方式,比如把repository放到公网上,以进行分布开发,svn也是支持的,可以参考这方面的文章。