三、安装SVN1、安装安装mod_dav_svn和svn服务:yum -y install mod_dav_svn subversion为什么安装mod_dav_svn因为安装他的过程自动就与Apache服务结合了,所以必须安装
重启Apache:service httpd restart测试是否安装apache-svn模块:ls /etc/httpd/modules/ | grep svn测试SVN服务是否正常安装:svn --version2、配置创建SVN库主目录(多库模式,一份配置文件管理无数个库):mkdir /svn之前尝试将svn放到其他目录,后来发现与svnadmin结合的时候有问题,所以这里建议放到根目录修改Apache配置:vim /etc/httpd/conf/httpd.conf添加以下内容:在<Directory>下面添加如下内容:<Location /svn/>DAV svnSVNListParentPath onSVNParentPath /svnAuthType BasicAuthName \"subversion repository\"AuthUserFile /svn/passwd.httpAuthzSVNAccessFile /svn/authzRequire valid-user</Location>RedirectMatch ^(/svn)$ $1/加粗部分根据自己svn库名不同而不同(我这里库名称是svn)创建passwd.http和authz文件:touch /svn/passwd.httptouch /svn/authz重启Apache:service httpd restart四、安装Jsvnadmin1、介绍在Google上,需要翻墙才能下载,到目前为止最新版本是2013年8月更新的3.0.5版本下载地址如下:https://code.google.com/archive/p/jsvnadmin/downloads他是java开发的一个极其简陋的网站,war包形式部署虽然简陋,但是功能足够满足我们的需求,只能说他们的前端页面是后端人员开发的他不仅是java开发的,而且用到了数据库,内置了MySQL、Oracle、SqlServer三种db的sql2、MySQL的安装参考【运维之路-常用软件的安装(CentOS7+JDK+Tomcat+Nginx+Redis+MySQL).docx】3、Jsvnadmin的部署Jsvnadmin包目录结构我们只需要db文件夹和svnadmin.war包将svnadmin.war上传到Tomcat的webapps下将war解压到webapps/svnadmin文件夹下unzip /xxx/tomcat/webapps/svnadmin.war -d svnadmin修改数据库配置:vim svnadmin/WEB-INF/jdbc.properties内容改为如下:删除无用的db配置,只保留MySQL(我这里是MySQL,具体的看你实际情况)db=MySQL#MySQLMySQL.jdbc.driver=com.mysql.jdbc.DriverMySQL.jdbc.url=jdbc:mysql://127.0.0.1:3306/svnadmin?characterEncoding=utf-8MySQL.jdbc.username=rootMySQL.jdbc.password=123456在我们第2步安装的MySQL上创建svnadmin数据库,并执行svnadmin(我们从Google下载的)文件夹下的db/mysql5.sql和db/lang.en.sql文件启动Tomcat并访问http://192.168.73.154:8100/svnadmin第一次输入的账号和密码就好比注册超级管理员,所以一定要切记
登录之后的界面:五、使用Jsvnadmin创建个库提交后此时:/svn/目录下会创建一个test的svn库目录同时也会多出一个httpd.conf文件,内容与/etc/httpd/conf/httpd.conf我们配置的一样(我们已经交给Apache管理了,并且也在Apache的httpd.conf里面配置了,所以无需此文件,直接删除即可)查看下authz文件,会多出如下内容:我这里有两个库,一个test,一个test2,这里只需关心test即可不难发现以上svnadmin的使用过程其实是调用了svn对应的命令做了相应的操作点击URL为什么认证失败?因为你登录的这个admin没有分配任何权限,所以我们只需要将其分配到管理员组下即可再返回去点击URL,一切正常
也可以设置权限和删除注意:(1)每当分配权限或者新增项目或者操作用户组等等的时候,都可以实时的查看下配置文件的变化,因为上面说了,svnadmin的使用操作就是相当于可视化界面操作底层命令可以在本地用小乌龟客户端进行使用了,checkout的地址就是(2)若分配权限了还是说认证失败则可以尝试下配置库目录权限chown -R apache.apache testchmod -R 777 test第一句话是意思是将这个文件夹赋予apache用户的权限,因为httpd.conf里面配置的用户和用户组都是apache如果还是不行,那么请检查selinux(Linux的访问控制)是否关闭具体的Jsvnadmin使用方法请参考我们从Google下载的zip包里面的【SvnAdmin_Manual_zh_CN.pdf】六、扩展如何在提交时加上必须要填写注释的验证?cd /svn/test/hooks/vim pre-commit写上如下:REPOS=\"$1\"TXN=\"$2\"# Make sure that the log message contains some text.SVNLOOK=/usr/bin/svnlookLOGMSG=`$SVNLOOK log -t \"$TXN\" \"$REPOS\" | grep \"[a-zA-Z0-9]\" | wc -c`if [ \"$LOGMSG\" -lt 5 ];#要求注释不能少于5个字符,您可自定义thenecho -e \"注释不能少于5个字符\" 1>&2exit 1fiexit 0
(图片来源网络,侵删)
0 评论