安装SVN步骤
1、安装SVN server
sudo apt-get install subversion
2、创建数据仓库
svnadmin create /home/svn/project svnadmin create /home/svn/flash 可以根据需要建立不同的数据仓库
3、启动svn网络服务
svnserve -d -r /home/svn 其中 -d 参数让 svnserve 运行在后台,-r 参数限定了数据仓库,在网络上可以访问的地址。 /home/svn指定svn数据仓库存放的目录位置
4、设置svn: 方式的访问权限
在每个数据仓库目录下都有一堆目录,进入 conf 并打开 svnserve.conf 这个文件,找到以下几行, 并把前面的注解符号 ‘#’ 去掉,注意千万在每行的前面别留任何空格。 anon-access = read auth-access = write password-db = passwd
其中 anon-access 和 auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限。
但如果想拒绝匿名用户的访问,只需把 read 改成 none 就能达到目的。 password-db 后的 passwd 则为定义用户名及密码的文件路径。这个文件默认跟 snvserve.conf 在同一个目录,下面看看怎么配置 passwd文件中的内容。 [user] # harry = harryssecret # sally = sallyssecret harry 和 sally 这两行分别定义了可以对 repo 进行写入的用户的用户名和密码。我们可以在下面加上自己的用户名和密码,比如 testsvn = tester 这样就给了用户 testsvn 往 repo 中写的权限。存盘退出后,svn 服务器就算正式可以运行了!
把所有需要管理的项目都放在 /home/svn这个目录下,像正常那样用 svnadmin create 命令建立数据仓库 这样就可以使用svn客户端通过svn://地址/数据仓库目录 的方式访问各个数据仓库了
5、在Apache 中部署Subversion
安装启用mod_dav 和 mov_dav_svn 这两个模块 sudo apt-get install apache2 subversion libapache2-svn
确定 mod_dav 和 mod_dav_svn 被打开 a2enmod dav dav_svn
修改 /etc/apache2/conf 下的 httpd.conf,加入如下代码: <Location /svn> DAV svn SVNParentPath /home/svnproject </Location> 这样就可以通过 http://地址url/svn 访问/home/svnproject下的数据仓库了
6、设定用户的权限和验证
htpasswd -cmb /home/passwdfile/passwords user1 pass1 注意/home/passwdfile这个目录必须存在
然后回到我们在 httpd.conf 中添加的代码,修改一下: <Location> DAV svn SVNParentPath /home/svnproject AuthType Basic AuthName "Test Repository" AuthUserFile /home/passwdfile/passwords <LimitExcept GET PROPFIND OPTION REPORT> Require valid-user </LimitExcept> </Location> 在这段代码的控制下,任何人都可以对 repo 进行 checkout,但只有 user1 才可以 commit <LimitExcept> 的作用是控制 HTTP 请求,如果 HTTP 请求是 GET PROPFIND OPTION REPORT 中的一种,则不需要去验证用户
最后,你需要把 repo 所在的目录和文件的所有权都改成系统中操作 Apache 的用户,这样在 commit 的时候才会被 Apache 认可。 在 Ubuntu 中,这个用户叫 www-data sudo chown -R www-data /home/svnproject