管理系统版本SVN(管理系统版本权限文件夹分配)「svn软件版本管理」

一、介绍Windows系统的SVN版本管理系统服务端非常易操作,因为他有可视化界面,那么centos纯命令行的怎么办?这就需要借助Jsvnadmin来帮我们创造出简陋的可视化界面,否则我们需要手动的去敲命令行(不管你是新增用户还是分配权限还是创建项目等等),很麻烦
二、安装Apache1、为什么安装Apache我们需要借助Apache来与我们的SVN完美整合,比如将我的是SVN路径提供出去等
2、安装步骤安装:yum -y install httpd httpd-devel启动:service httpd start检查是否启动成功:ps -ef|grep httpd修改端口号为81(默认80端口,与nginx冲突):vim /etc/httpd/conf/httpd.confServerName xxx:80 ==》localhost:81Listen 80 ==》Listen 81重启服务:service httpd restart检查防火墙:若防火墙关了,则不用管,若开启防火墙了,则需要将81端口映射出去(同时检查安全组配置)
验证:http://192.168.73.154:81/Apache的安装与配置大功告成

三、安装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的sql
2、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
管理系统版本SVN(管理系统版本权限文件夹分配)
(图片来源网络,侵删)

联系我们

在线咨询:点击这里给我发消息