一、简介
Subversion一般使用两种后台服务模式:一种是其自己实现的 svnserve,可以通过svn协议访问,另一种是借助mod_dav_svn 模块,由Apache http 服务器来实现,然后通过HTTP或HTTPS协议来访问。下面要介绍的该种svn的搭建方式,与前文中的搭建方式略有不同。就难易程度上来讲,实现svn协议访问的这种方式比apache http的方式要容易许多~
二、安装步骤
步骤一 使用apt包管理器来安装subversion
sudo apt-get subversion
ps:如果是rpm系列的类似(yum install subversion)
步骤二 建立svn的安装目录
mkdir -p /home/user/svn
ps: 这里主要-p参数用来递归创建目录
步骤三 指定安装目录为svn的项目目录
svnadmin crteate /home/user/svn
ps:该步骤比较重要,执行完该步骤以后,svn目录下将会出现一个非常核心的目录conf,目录中的文件如下:
conf/
authz 该文件主要为用户的授权文件
passwd 该文件为用户的用户名和密码
svnserve.conf 该文件用来控制项目的读写权限,以及项目的用户文件和授权的文件的路径。
步骤四 修改conf中的配置文件
vim svnserve.conf
文件修改说明:
anon-access = none #匿名访问用户的权限为无
auth-access = write #认证权限为写权限
password-db = passwd #该passwd文件默认为conf下的文件
authz-db = authz #用户授权文件默认为conf下的authz文件
realm = repo name #仓库的名字
vim passwd
文件修改说明:
user = passwd
vim authz
文件修改说明:
[svn:/]
user = rw
步骤五 开启svnserve服务
svnserve -d -r /home/user/svn [--listen-port=port]
ps: -d 表示以后台模式运行,-r 用于指定仓库的位置。--listen-port这个参数指定svn服务监听的端口为port值,默认不指定的情况下,监听的端口为3690。
三、FAQ 常见问题
1) 更新项目的时候,出现 db/txn-current-lock: Permission denied
答:查看一下指定项目下的db/目录的属组,可能由于该目录的属组设置为root,那么你需要将该属组改成一个比较低级别的用户,可以是user可以是其他的。同时需要修改db的读写权限,我个人常常【暴力】的将其chmod为777。
reference :
chown -R user:user db/
chmod -R 777 db/
2) 下载项目的时候,出现 svn: Authorization failed
答:这一个错误通常是由于authz文件中的内容错误导致的,可以使用svn自带的一个配置文件检测工具来检测一下该authz文件是否存在问题,如果存在语法问题,修改语法格式,如果不存在语法问题,那么很有可能未设置根目录的权限。可以在authz中追加如下信息:
[/]
andrew = rw
这样andrew就拥有了对根目录的读写权限
3)在winows的tortoisesvn客户端下,显示日志出现错误,出现类似:连接服务器失败,你想使用缓存中的数据吗?
答:很可能是由于svnserve.conf文件中的anon-access的值为read,只要将anon-access的值改为none即可。
anon-access = read => acnon-access = none
原理:以anon身份去读项目内容的时候,由于在authz中没有给anon配置权限,这造成了无法读取log item not readable的问题。
4)在用户客户端svn add 目录的时候,出现类似以下问题:
svn: warning: W150002: '/Users/piercalex/svn/azzz/1' is already under version control
svn: E200009: Could not add all targets because some targets are already versioned
svn: E200009: Illegal target for the requested operation
答:
svn add /Users/piercalex/svn/azzz/1 --force
svn add 目录名 --force
这样就可以把这个目录的东西提交进去。
四、总结
好记性不敌烂笔头,最近深深感受到自己记忆力的下降,不知道是工作量的增大还是岁数太大的原因(其实我还是90后啦)。记忆力衰退也算一个契机吧,这样督促自己将自己工作中的事情记录下来,无事一身轻,哎,还有好多事情要记录一下尼,才能做到身轻如燕~
来源:oschina
链接:https://my.oschina.net/u/2496664/blog/613007