[转载]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

猜你喜欢

转载自lancezhcj.iteye.com/blog/1159258
今日推荐