[转载]Linux SVN的安装以及配置
Linux SVN的安装以及配置
原文地址:http://blog.sina.com.cn/s/blog_60be437a0100ikn0.html
Linux SVN的安装以及配置
step 1
安装subversion
yum install subversion
step 2
安装apache的Linux SVN模块
yum install mod_dav_svn
step 3
建立Linux SVN仓库文件mkdir /svn
step 4
建立Linux SVN库并修改/svn用户组和用户
svnadmin create /svn/repos/
chown -R apache.apache /svn
step 5
编辑/svn/repos/conf/svnserve.conf
vi /svn/repos/conf/svnserve.conf
5-1.把#anon-access = read
#auth-access = write改为anon-access = none
(如果此处不设置为none的话,则连结SVN时会出现错误“Read access denied for root of edit”)
auth-access = write
5-2.把#password-db = passwd改为password-db = passwd
5-3.把#authz-db = authz改为authz-db = authz(此处设置后方可设置svn访问读写权限的配置文件“/svn/repos/conf/authz”)重点注意:”svn: /svn/repos/conf/svnserve.conf:12: Option expected“发生时,原因是:是因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置,因此前面不能有空格。
step 6
Linux SVN增加用户密码,并设置访问权限
6-1.vi /svn/repos/conf/passwd
如[users]
#user = passwordsvnuser = svnusertest = test
6-2.vi /svn/repos/conf/authz
追加下记文字
[/]svnuser = rw[/]test = r
step 7
把每次提交的文件都和/var/www/html同步,那样,就可以直接访问了信件一个post-commit文件
cp post-commit.tmpl post-commit
vi /svn/repos/hooks/post-commit
写入以下内容:
#!/bin/shexport LANG=en_US.UTF-8
svn update /var/www/html --username svnuser --password svnusersvn
update /var/www/html --username test --password test
并且,把这个文件改为777 首先,先在服务器端/var/www/html checkout以后,每次更新就能够向/var/www/html添加了
chmod 777 post-commit
chown apache.apache post-commit
Step 8
运行subversion服务(非必要)
vi /etc/rc.local加入如下命令
#!/bin/sh
#
# This script. will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style. init stuff.
touch /var/lock/subsys/localsvnserve -d -r /svn/repos
step 9
设置apache的Linux SVN配置文件vi /etc/httpd/conf.d/subversion.conf<Location /repos>DAV svn SVNParentPath /svn
# # Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# # Require SSL connection for password protection.
# # SSLRequireSSL
#
# AuthType Basic
# AuthName "Authorization Realm"
# AuthUserFile /path/to/passwdfile
# Require valid-user
# </LimitExcept></Location>
把对应的#号去掉,并修改路径,改为如上的。
step 10
重启服务器svnserve --daemon --root=/svn --listen-port=3690
step 11
建立project svnProject
mkdir /tmp/svnProject
mkdir /svn/repos/svnProject
svn import /tmp/svnProject file:///svn/repos/svnProject -m "initial import" //将目录中的文件同步到SVN目录中
step 12
在服务器checkout一次
svn checkout svn://127.0.0.1/repos /var/www/html
step 13
OK了可以用别的机器访问服务器,
例如内网IP:192.168.1.226
svn://192.168.1.226/repos/svnProject
test项目的地址
http://192.168.1.226/svnProject
以后commit到数据仓库的代码,和192.168.1.222服务器的/var/www/html里面的同步了另外,可以每个数据仓库一个项目工程,自己进行相关设置就是了
备注:
SVN 向版本中导入文件操作:
/opt/svn/bin/svn import -m "project" /var/www/dotproject svn://192.168.6.109/repos1
其中 -m "project"为创建说明
/var/www/dotproject 为需要导入文件的目录
svn://192.168.6.109/repos1 为SVN路径。
SVN 导出版本中的文件操作:
svn checkout svn://192.168.6.109/repos1 dotproject
其中 dotproject为需要导入的目录名.
SVN 说明书:
http://www.subversion.org.cn/svnbook/1.1/
假设服务器对外访问域名为http://yemaosheng.com/ 网站文件存放于/var/www/html/ye/
修改SVN库中post-commit文件
操作如:
cd /var/www/svn/repos/hooks/
cp post-commit.tmpl post-commit
chown apache:apache post-commit
chmod a+x post-commit
vi post-commit
#!/bin/sh
REPOS=”$1″
REV=”$2″
svn update /var/www/html/ye –username svnuser1 –password 123456
PS:以上操作应该都没错,但我在我FC8的服务器上测试了没有效果,估计是UTF-8的问题.
我只好先用crontab每5分钟运行一次sh来代替.
#!/bin/sh
export LANG=zh_CN.UTF-8 #注:这一行害我折腾了几小时
svn update /var/www/html/ye –username root –password 123456