一、创建SVN版本库

1.安装svn服务器       

yum install subversion

2.查看版本

svnserve --version

3.建立SVN版本库目录(即你的SVN服务器里面的文件存放在哪个目录)

mkdir -p /data/svn

4.创建SVN版本库

svnadmin create /data/svn/davesvn

5.修改SVN的配置文件相关配置信息,主要是权限这块

(1)svnserve.conf文件修改

vi /data/svn/davesvn/conf/svnserve.conf

将以下几项放开注释并修改

[general]

anon-access = none

auth-access = write

password-db = passwd   #还可以指定到其它目录都是可以的

authz-db = authz

realm = My First Repository

说明:

anon-access: 控制非鉴权用户访问版本库的权限。

auth-access:  控制鉴权用户访问版本库的权限。

password-db: 指定用户名口令文件名。

authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。

realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件

(2)passwd文件修改

vi /data/svn/davesvn/conf/passwd

在文件中最后添加以下2行(配置允许访问SVN的用户)

[users]

test = test

(3)authz文件修改

vi /data/svn/davesvn/conf/authz

在文件中最后添加以下3行(配置用户访问权限相关:根目录下的所有文件test用户都可以进行读写操作)

admin = test
[/]
@admin = rw

6.启动SVN服务:

svnserve -d -r /data/svn

说明:

  -d表示以daemon方式(后台运行)运行
  -r /data/svn指定根目录是/data/svn

(停止SVN服务:ps -aux |grep svn    kill -9 进程杀掉)

7.测试svn版本库搭建是否成功

(1)windows安装TortoiseSVN 客户端,不作过多说明

(2)新建测试目录svn,进入后右键,点checkout

下图svn地址为:svn://Linux IP/项目名称

SVN 服务器的IP地址和版本库名称(此文章中此处应为test/test)

新建个文件svn.txt. 把这个文件上传到SVN服务器(add)

二、配置checkstyle做代码风格检查

采用:SVN PreCommitChecks + CheckStyle + svnchecker方案

1.前期准备:插件下载

(1)CheckStyle下载

下载地址:https://download.csdn.net/download/mactty/4392509

checkstyle-5.3-bin.zip解压后结构如下图

(2)svnchecker下载

下载地址:https://sourceforge.net/projects/svnchecker/files/svnchecker/0.3/

svnchecker-0.3.tar.gz解压后目录如下:

2.将checkstyle-5.3-bin.zip,svnchecker-0.3.tar.gz上传至linux虚拟机,并解压

3.在svn代码库的hooks目录下创建/修改配置文件

(1)pre-commit修改

1)进入svn版本库的hooks目录

cd /data/svn/davesvn/hooks

2)将pre-commit.tmpl重命名为pre-commit

mv pre-commit.tmpl pre-commit

3)将下图中的1注释,2添加

/data/svntools/svnchecker-0.3/Main.py PreCommit "$REPOS" "$TXN" || exit 1

(说明:/data/svntools/svnchecker-0.3为svnchecker插件目录)

(2)新增idea_checks.xml文件(此文件为checkstyle代码检测规则文件,可自定义)

touch idea_checks.xml

文件内容如下:

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
<!-- 检查文件是否以一个空行结束 -->
<module name="NewlineAtEndOfFile"/> <module name="TreeWalker">
<!-- 禁止使用System.out.println -->
<module name="Regexp">
<property name="format" value="System\.out\.println"/>
<property name="illegalPattern" value="true"/>
</module>
</module>
</module>

(3)新增svncheckerconfig.ini文件

touch svncheckerconfig.ini

文件内容如下:

[Default]

#This property tells Subversionchecker about all checks
#(UnitTests, AccessRights, XMLValidator etc) it should execute.
#Separated with comma (",")
Main.PreCommitChecks=Checkstyle

#Path of java executable to run Checkstyle command
Checkstyle.Java=/usr/bin/java

#Classpath for executing Checkstyle rules
Checkstyle.Classpath=/data/svntools/checkstyle-5.3/checkstyle-5.3-all.jar

#Configuration file for Checkstyle to run its rules.
Checkstyle.ConfigFile=/data/svntools/checkstyle-5.3/idea_checks.xml

#In case of failures, where should Subversionchecker redirect the errors
Checkstyle.FailureHandlers=Console

说明:

  Main.PreCommitChecks:检查器为Checkstyle

  Checkstyle.Java:Checkstyle执行的java命令路径为/usr/bin/java

  Checkstyle.Classpath:要加载/data/svntools/checkstyle-5.3/checkstyle-5.3-all.jar

  Checkstyle.ConfigFile:检查规则文件路径为/data/svntools/checkstyle-5.3/idea_checks.xml

  Checkstyle.FailureHandlers:失败时将把信息输出到标准输出

 

4.校验

当有代码提交时,此检查框架将运行,保证违反规则的代码被拒绝。程序员的将看到类似如下的信息

5.提交非java代码报错问题:设置只对java代码进行校验

说明:在Checkstyle.py文件中command = "%s -classpath %s com.puppycrawl.tools.checkstyle.Main -c %s " % (java, classpath, config)这个命令执行时需要在后面加上待检查文件,但是非java文件在transaction.getFiles(check, ignore)方法中得到的为空,但是后续并没有做验证就直接执行Process.execute(command + " ".join(files))命令,故报错。

方法:在command = "%s -classpath %s com.puppycrawl.tools.checkstyle.Main -c %s " % (java, classpath, config)语句之后加上    if cmp(" ".join(files),"") == 0:        return ("", 0)即可;

linux 创建svn版本库,并在svn上配置checkstyle做代码风格检查的更多相关文章

  1. SVN版本库(访问权限)配置实例笔记

    http://blog.csdn.net/zjianbo/article/details/8578297 SVN版本库(访问权限)配置实例笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. ...

  2. 创建本地SVN版本库以及将SVN导入GIT

    创建本地SVN 通常SVN作为一种服务,是在服务器上架设,供用户通过网络访问使用.但如果只是自己日常使用,完全可以架设在本机上,不需要启动后台程序,通过文件的方式访问即可. 建立本地SVN非常简单,一 ...

  3. linux服务器上创建svn版本库

    1. 创建存放各个svn版本库的目录svnrepos(自己定义路径) -bash: cd /usr/local/apache/htdocs/ -bash: mkdir svnrepos 2. 假设我要 ...

  4. linux上svn版本库创建小记

    [新建svn仓库] 先创建一个文件夹mkdir /opt/svn/wechat;   然后创建svn版本库    svnadmin create /opt/svn/wechat;   [创建用户组权限 ...

  5. svn 版本库的创建和配置

    1.创建SVN版本库 mkdir trunk svnadmin create /root/trunk/svntest #这里是路径和即将创建的版本库名称 2.配置svn cd /root/trunk/ ...

  6. Linux 搭建svn版本库

    一.安装svn服务器端yum install subversion      从镜像下载安装svn服务器端 如果后面执行“svnadmin create /usr/local/svn/sunny”提示 ...

  7. Linux新建SVN版本库

    1.进入svn 版本库(如/www/svn) 2.创建svn 版本库svnadmin create  edition 3.进入新建的版本库库目录cd edition 4.进入版本库配置目录cd con ...

  8. 工作随笔——使用svnsync实时备份SVN版本库

    前段时间把SVN版本库从win迁移到了Linux上,没隔几天那台win的磁盘就严重坏道了....这TMD什么运气! 花费了点时间研究了下svn自己的同步工具.写个日志记录下. 注意:svnsync要求 ...

  9. 用svnsync 同步备份 svn 版本库 从一台服务器到另一台服务器

    如用svnsync 同步备份两台机器的svn .(就以linux服务器到windows服务器为例子) 要同步的项目名称:source_svn svn 版本库1 .4 以上 源目录:           ...

随机推荐

  1. [大数据技术]Kettle从CSV文件读取清洗后到MySQL中文乱码问题

    首先要知道CSV文件的编码格式 然后在文件输入编码选择编码格式, 第二步,在每个转换或者作业的DB连接中选择选项,并添加如下内容: 中文乱码问题得到解决

  2. 代数式到c语言表达式和常用的c语言数学库函数_pow_sqrt_exp_fabs_abs

    数学知识来源于生活,因此我们需要把相关的数学的知识在自己生活找到实例. #include "common.h" #include <stdio.h> #include ...

  3. 字节跳动挤上少儿英语末班车,gogokid能否抵达终点?

    编辑 | 于斌 出品 | 于见(mpyujian) 近日,据多方消息,字节跳动旗下少儿英语品牌gogokid,迎来了一位新的90后CEO金钱琛.据知情人士透露,金钱琛入职不到两个月,目前全面掌管gog ...

  4. Spring Event事件驱动

    Spring事件驱动模型,简单来说类似于Message-Queue消息队列中的Pub/Sub发布/订阅模式,也类似于Java设计模式中的观察者模式. 自定义事件 Spring的事件接口位于org.sp ...

  5. centos7安装显示中文

    系统通过环境变量LANG设置语言格式编码 查看当前语言环境 echo $LANG 查看是否安装中文语言,Linux中通过locale来设置程序运行的不同语言环境 locale -a | grep 'z ...

  6. CTF长久练习平台

    0x01 XCTF(攻防世界) 攻防世界是ctf爱好者很喜欢的一个平台,不仅是界面风格像大型游戏闯关,里面的各类题目涵盖的ctf题型很广,还分为新手区和进阶区两块: 并且可以在里面组队,做一道题还有相 ...

  7. 咸鱼的ACM之路:动态规划(DP)学习记录

    按挑战程序设计竞赛介绍的顺序记录一遍学习DP的过程. 1. 01背包问题 问题如下: 有N个物品,每个物品(N[i])都有一定的体积(W[i]),和一定的价值(V[i]) 现在给定一个背包,背包的容量 ...

  8. 翻转引起 cocos studio 引擎与cocos2d 代码相同坐标显示不同

    使用setFlippedX后,又改变锚点为1.此时代码中坐标需要相对于cocos studio 中增加它本身的width,因为(0.5,0.5)是相对于自己中点的翻转,不变坐标.而(1,0.5)是相对 ...

  9. [Python]BeautifulSoup标签的遍历

    1.下行遍历 标签树的下行遍历.content 子节点列表,将tag所有儿子节点存入列表.children 子节点的迭代类型,与.contents类似用于循环遍历儿子节点.descendants 子孙 ...

  10. C# Enumerable

    使用Enumerable.Range 打印数字0到9 static void Main(string[] args) { , ); //Range方法获取两个int参数:一个起始数,一个是要生成的结果 ...