JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

SVN版本管理系统的安装与使用 svn安装和使用教程

wys521 2024-10-16 14:35:31 精选教程 20 ℃ 0 评论

一、介绍

Windows系统的SVN版本管理系统服务端非常易操作,因为他有可视化界面,那么centos纯命令行的怎么办?这就需要借助Jsvnadmin来帮我们创造出简陋的可视化界面,否则我们需要手动的去敲命令行(不管你是新增用户还是分配权限还是创建项目等等),很麻烦。

二、安装Apache

1、为什么安装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.conf

ServerName xxx:80 ==》localhost:81

Listen 80 ==》Listen 81

重启服务:

service httpd restart

检查防火墙:

若防火墙关了,则不用管,若开启防火墙了,则需要将81端口映射出去(同时检查安全组配置)。

验证:

http://192.168.73.154:81/

Apache的安装与配置大功告成!!

三、安装SVN

1、安装

安装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 --version

2、配置

创建SVN库主目录(多库模式,一份配置文件管理无数个库):

mkdir /svn

之前尝试将svn放到其他目录,后来发现与svnadmin结合的时候有问题,所以这里建议放到根目录。

修改Apache配置:

vim /etc/httpd/conf/httpd.conf

添加以下内容:

在<Directory>下面添加如下内容:

<Location /svn/>

DAV svn

SVNListParentPath on

SVNParentPath /svn

AuthType Basic

AuthName "subversion repository"

AuthUserFile /svn/passwd.http

AuthzSVNAccessFile /svn/authz

Require valid-user

</Location>

RedirectMatch ^(/svn)$ $1/

加粗部分根据自己svn库名不同而不同(我这里库名称是svn)。

创建passwd.http和authz文件:

touch /svn/passwd.http

touch /svn/authz

重启Apache:

service httpd restart

四、安装Jsvnadmin

1、介绍

在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

#MySQL

MySQL.jdbc.driver=com.mysql.jdbc.Driver

MySQL.jdbc.url=jdbc:mysql://127.0.0.1:3306/svnadmin?characterEncoding=utf-8

MySQL.jdbc.username=root

MySQL.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 test

chmod -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/svnlook

LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`

if [ "$LOGMSG" -lt 5 ];#要求注释不能少于5个字符,您可自定义

then

echo -e "注释不能少于5个字符" 1>&2

exit 1

fi

exit 0

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表