`

架设SVN服务器并自动同步和验证注释

    博客分类:
  • SVN
SVN 
阅读更多

搭建SVN服务,有效的管理代码,以下三步可以快速搞定。
1、安装          

yum install subversion
 
判断是否安装成功
svnserve --version
 
有了SVN软件后还需要建立SVN库。
mkdir /opt/svn/repos
svnadmin create /opt/svn/repos
 
执行上面的命令后,自动在repos下建立多个文件, 分别是conf, db,format,hooks, locks, README.txt。

2、配置
     上面的操作很简单,几个命令就搞定, 下面的操作也不难。
     进入上面生成的文件夹conf下,进行配置,   有以下几个文件authz, passwd, svnserve.conf
     其中authz 是权限控制,可以设置哪些用户可以访问哪些目录,   passwd是设置用户和密码的,    svnserve是设置svn相关的操作。


   2.1先设置passwd

[users]
# harry = harryssecret
# sally = sallyssecret
hello=123
用户名=密码

 

这样我们就建立了hello用户, 123密码  

   2.2 再设置权限authz

[/]
hello= rw

 

意思是hello用户对所有的目录有读写权限,当然也可以限定。
如果是自己用,就直接是读写吧。


  2.3最后设定snvserv.conf

anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = password
authz-db = authz   # 访问控制文件
realm = /opt/svn/repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。

 

采用默认配置. 以上语句都必须顶格写, 左侧不能留空格, 否则会出错.

好了,通过以上配置,你的svn就可以了。

3、连接

启动svn: 
svnserve -d -r /opt/svn/repos
 
如果已经有svn在运行,可以换一个端口运行如
svnserve -d -r /opt/svn/repos --listen-port 3391
 这样同一台服务器可以运行多个svnserver

好了,启动成功后,就可以使用了。
建议采用TortoiseSVN, 连接地址为: svn://ip (如果指定端口需要添加端口  :端口号)

连接后可以上传本地的文件,有效的管理你的代码。

4、自动同步到指定目录

我们需要使我门的测试服务器127.0.0.1进行同步更新:
在/opt/svn/repos/hooks/目录下建立post-commit文件

#vi post-commit

内容如下:

 

#!/bin/sh
#设定环境变量,如果没有设定可能会出现update报错
export LANG=zh_CN.GBK   
#设定语言,根据系统语言设置,如果是UTF-8 就设置为 LANG=zh_CN.UTF-8
SVN_PATH=/usr/bin/svn
WEB_PATH=/home/wwwroot/testsvn

$SVN_PATH update svn://127.0.0.1/ $WEB_PATH  --username 用户名 --password 密码 --no-auth-cache

  保存后加权限:chmod +x post-commit

 

5、必须提交注释才可以提交,否则不允许提交

 

#!/bin/sh  
REPOS="$1" 
TXN="$2" 
 
SVNLOOK=/usr/bin/svnlook  
 
LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`   
 
  if [ "$LOGMSG" -lt 5 ];then 
     echo -e "Log message cann't be empty! you must input more than 5 chars as comment!" 1>&2   
     exit 1    
  fi   
 
exit 0

保存后加权限:chmod +x pre-commit 

 

至此架设了svn服务,至于同步更新至指定服务和必须注释才能提交可以选择性的使用

 

 参考:

http://blog.csdn.net/lpdx111/article/details/17161751

http://ylw6006.blog.51cto.com/470441/522712/

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics