一、服务器端配置
安装 # yum install -y subversion yum安装软件,不清除软件包的方法 # vim /etc/yum.conf keepcache=0 建立svn版本库数据存储根目录svndata及用户、密码权限目录svnpasswd # mkdir -pv /application/svndata # mkdir -pv /application/svnpasswd 启动服务 # svnserve -d -r /application/svndata/ 验证服务是否正常启动 # ps -ef | grep svn # lsof -i :3690 建立项目管理库 # svnadmin create /application/svndata/sadoc# tree /application/svndata//application/svndata/└── sadoc ├── conf │ ├── authz │ ├── passwd │ └── svnserve.conf ├── db │ ├── current │ ├── format │ ├── fsfs.conf │ ├── fs-type │ ├── min-unpacked-rev │ ├── rep-cache.db │ ├── revprops │ │ └── 0 │ │ └── 0 │ ├── revs │ │ └── 0 │ │ └── 0 │ ├── transactions │ ├── txn-current │ ├── txn-current-lock │ ├── txn-protorevs │ ├── uuid │ └── write-lock ├── format ├── hooks │ ├── post-commit.tmpl │ ├── post-lock.tmpl │ ├── post-revprop-change.tmpl │ ├── post-unlock.tmpl │ ├── pre-commit.tmpl │ ├── pre-lock.tmpl │ ├── pre-revprop-change.tmpl │ ├── pre-unlock.tmpl │ └── start-commit.tmpl ├── locks │ ├── db.lock │ └── db-logs.lock └── README.txt11 directories, 28 files修改配置 # cd /application/svndata/sadoc/conf # cp svnserve.conf svnserve.conf.bak 修改配置文件 # vim svnserve.conf anon-access = none # 关闭匿名访问 auth-access = write password-db = /application/svnpasswd/passwd authz-db = /application/svnpasswd/authz 验证修改是否成功 # diff svnserve.conf svnserve.conf.bak 12,13c12,13 < anon-access = none < auth-access = write --- > # anon-access = read > # auth-access = write 20c20 < password-db = /application/svnpasswd/passwd --- > # password-db = passwd 27c27 < authz-db = /application/svnpasswd/authz --- > # authz-db = authz
# cp passwd authz /application/svnpasswd/
# cd /application/svnpasswd
# chmod 700 * # ll total 8 -rwx------ 1 root root 1080 Jun 27 15:35 authz -rwx------ 1 root root 309 Jun 27 15:35 passwd 增加访问svn用户信息 # vim passwd 编辑用户权限 # vim authz sagroup = jack,xiaoming [/] jack = rw xiaoming = r@sagroup = r
配置SVN服务器的HTTP支持
svn作为独立服务器或借助apache服务的两种方式,可同时使用。 安装apache服务 # yum install -y httpd (1)转换SVN服务器的密码 因为svn密码为明文,http不支持明文.需要生成一个webpasswd文件,首次创建new的webpass文件用-c。 #/application/svnpasswd # htpasswd -c webpasswd jack 根据提示输入密码即可 目录下会多一个webpasswd文件。 注意如果需要,多次加入用户,则用htpasswd -m #htpasswd -m webpasswd tom(2)配置apache
# vim /etc/httpd/conf/httpd.conf Listen 9000 在最后添加如下信息: <Location /svn> DAV svn SVNPath /application/svndata/sadoc/ AuthType Basic AuthName "svn for project" AuthUserFile /application/svnpasswd/webpasswd AuthzSVNAccessFile /application/svnpasswd/authz Satisfy all Require valid-user </Location> (3)重启httpd #/etc/init.d/httpd restart 出现Unknown DAV provider: svn的错误,是因为系统没有安装mod_dav_svn,它是Subversion与Apache之间的接口(通过它,Apache就可以访问版本库,可以让客户端也使用HTTP的扩展协议 WebDAV/DeltaV进行访问)。 #yum install mod_dav_svn //使subversion与dav模块通信的功能 #yuminstall mod_authz_svn //实现权限控制功能 再重启即可。 (4)使用浏览器访问http://192.168.8.39:9000/svn/ 继续报错:You don't have permission to access /svn/ on this server 查看日志发现是没有权限访问authz认证文件 # tail /var/log/httpd/error_log [Tue Jun 28 19:34:45 2016] [error] [client 192.168.50.18] (13)Permission denied: Failed to load the AuthzSVNAccessFile: Can't open file '/application/svnpasswd/authz': Permission denied 修改认证文件访问权限即可 # chmod 744 /application/svnpasswd/authz 若单独设置端口号,网址为http://IP地址:端口/svn。二、客户端配置
windows环境客户端
下载并安装TortoiseSVN 1.9.2 svn客户端连接服务器的方式,账号及密码: svn://192.168.8.39/sadoc 用户名:jack 密码:jack123windows中存放svn信息的路径:
%APPDATA%\Subversion\auth svn.simple 里面包含了基本认证方式所需要的认证信息,包括用户名密码信息 svn.ssl.server 里面包含了ssl服务器证书 svn.username 包含了用户名认证的认证信息 下载更新 SVN服务器有新的文件发布或者修改,本地文件库从SVN服务器更新;在本地文件库中,在空白处右键鼠标,点击SVN Update可以清除配置:
上传更新 从本地文件库有的新的文件发布或者修改需要更新到SVN服务器;在本地文件库中,在空白右键鼠标,点击SVN Commit