RJ博客

CentOS SVN服务器搭建

本文目录


一、安装步骤如下:

1、yum install subversion
2、rpm -ql subversion #查看安装位置


3、创建svn版本库目录

mkdir -p /var/svn/svnrepos


4、创建版本库

svnadmin create /var/svn/svnrepos


5、进入conf目录(该svn版本库配置文件)

authz文件是权限控制文件

passwd是帐号密码文件

svnserve.conf SVN服务配置文件


6、设置帐号密码

vi passwd

在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan


7、设置权限

vi authz
#在末尾添加如下代码:
[/]dan=rww=r

意思是版本库的根目录dan对其有读写权限,w只有读权限。


8、修改svnserve.conf文件

vi svnserve.conf


打开下面的几个注释:

anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录


9、启动svn版本库

svnserve -d -r /var/svn/svnrepos


10、设置开机启动

进入etc/rc.d/rc.local在末尾添加脚本的路径,如:

/usr/bin/svnserve -d -r /var/svn

http://www.blogjava.net/rockblue1988/archive/2014/11/19/420246.aspx


二、同步(checkout)服务器数据到本地 命令:svn checkout [directory] svn co [directory]

eg:

#cd /www/website#svn co svn://svn_site_url  ./


设置钩子 

我们知道要把svn的内容更新到web目录需要手动的svn up,但是今天笔者教你自动更新web目录的方法,我们要在svn版本库中配置钩子来实现,就是创建一个post-commit的配置文件,对其进行简单的配置,简简单单的四步就可以实现Linux下SVN自动更新web目录配置。 

1、建立你的web程序目录 

mkdir /var/www/html/test    
cd /var/www/html/test
#不重命名文件夹,直接在当前目录下检出  
svn checkout svn://121.14.177.178:843/svntest 
#检出文件并且重命名文件夹  
svn checkout svn://121.14.177.178:843/svntest test


3、在项目库的 hooks/ 目录下新建 post-commit 文件 【钩子脚本】 
添加脚本内容如下: 

#!/bin/sh 
SVN=/usr/bin/svn      #这里配置的是svn安装bin目录下的svn文件
WEB=/var/www/html/test    #要更新的目录
$SVN update $WEB --username xxx --password xxx

#此版本是linux下,windows下是.bat,写法少有不同

其中SVN=右边改成 svn 命令位置 
WEB=右边改成你实际的web目录 


4、让post-commit有执行的权限

chmod 777 post-commit 
netstat -tunlp | grep svn      #找到进程id
kill -9 id               #执行命令
svnserve -d -r /var/svn/       #启动svn服务:

   

接下来就是测试了。

四、为每个项目制定一个版本库

按照上面的步骤重复安装即可,注意的是启动svn服务的时候,地址写到svn版本库根目录就行,例如:

svnserve -d -r /var/svn/   (版本库都在svn文件夹里面)

如果执行成:svnserve -d -r /var/svn/svnrepos,则当输入在Windows用IP执行checkout的时候默认是检出svnrepos目录。

=================================================

说明: 

  • #!/bin/sh 说明是执行shell命令 


  • export.GBK 是为了解决svn post commit 中文乱码,设置本地化编码,因为我的系统为GBK编码,SVN默认是UTF-8编码, export LANG=zh_CN.UTF-8

    如果不设置将会出现错误,而执行不成功,错误标识为svn: Can't convert string from native encoding to 'UTF-8' 


  • /usr/bin/svn update --username lxy --password 123456 /var/www/myproject 执行更新操作 


  • 如果提示:post-commit hook failed (exit code 255) with no output赋予post-commit文件可执行权限 


  • 如果您的默认编码就是UTF-8的,要上传中文文件,先将文件另存为UTF-8格式在提交 


参考: 

http://blog.csdn.net/wenwenxiong/article/details/48008685

http://blog.163.com/longsu2010@yeah/blog/static/173612348201202114212933

http://www.cnblogs.com/visi_zhangyang/archive/2012/04/05/2433189.html

http://lhkzyz.iteye.com/blog/1666180


相关推荐

发表评论

  • 欢迎评论

  • I'm not that much of a online reader to be honest but your blogs really nice, keep it up! I'll go ahead and bookmark your site to come back later. Many thanks

  • I'm not that much of a online reader to be honest but your blogs really nice, keep it up! I'll go ahead and bookmark your site to come back later. Many thanks