linux下搭建SVN

 

官网下载: http://subversion.apache.org/packages.html

SVN客户端:TortoiseSVN :https://tortoisesvn.net/downloads.html

 

查看系统下有没有安装过老版本的svn:rpm -qa subversion,如果没安装过则什么都不显示

 

 

如果有老版本先运行一下yum -y  remove subversion,删除老版本。

 

第一步:通过yum命令安装svnserve,命令:yum -y install subversion

此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行

 

若需查看svn安装位置,可以用命令:rpm -ql subversion

 

第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置,subversion默认是把/var/svn作为数据根目录的,开机启动默认也是从这里):mkdir /var/svn/svnrepos

 

第三步:创建svn版本库

在第二步建立的路径基础上,创建版本库:svnadmin create /var/svn/test(test为目录(项目或版本库)名称,后面checkout项目时会用到。)

 

创建成功后,进入test目录下,可以看见如下文件信息:cd /var/svn/test

conf:是这个仓库配置文件(仓库用户访问账户,权限)

format:是一个文本文件,里边只放了一个整数,表示当前文件库配置的版本号

hooks:放置hook脚步文件的目录

locks:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端

 

第四步:配置修改

进入conf,conf目录下,一共存放三份重要的配置文件,如下:

authz:负责账号权限的管理,控制账号是否读写权限

passwd:负责账号和密码的用户名单管理

svnserve.conf:svn服务器配置文件

 

修改svnserve.conf:vim svnserve.conf

原始文件内容,都被注释掉的,我们只需要去掉指定内容前注释即可,如下:

[general]

anon-access = none                #控制非鉴权用户访问版本库的权限

auth-access = write                 #控制鉴权用户访问版本库的权限

password-db = passwd           #指定用户名口令文件名,即访问时要输用户名和密码

realm = test                    #指定版本库的认证域,即在登录时提示的认证域名称,改成自己的版本库

 

修改authz文件信息:vim authz

在文件内容的末尾,添加如下:

rw表示赋予此账号可读写的权限,r为读,w为写,注意[/]中的斜杠,这里如果斜杠反了,authz-db = authz 一直会提示“认证失败”

第一种方式:单个添加:

# 按账号分权限

[test/]

admin = rw

test = r

 

第二种方式(后面采用此方式配置):用户分组,再设权限

[groups]

# 按用户组分权限

admin = admin,admin1    # admin为用户组,等号之后的为用户

test = test1, test2     # test为用户组,等号之后的为用户

[test/]         # 表示根目录(/var/svn/test),test: 对应前面配置的realm = test

@admin = rw     # 表示admin组对根目录有读写权限,r为读,w为写

[test/test1]    # 表示test1目录(/var/svn/test/test1)

@test = rw      # 表示test组对test1目录有读写权限

* =

备注:版本库的目录格式如下:

[<版本库>:/项目/目录]

@<用户组名> = 权限

<用户名> = 权限

其中[]內容有許多写法:

[/],表示根目录及其一下的路径,根目录是svnserver启动时指定好的,上述实例中我们指定为:/svn/svndata([/]=/svn/svndata).[/]就是表示对全部版本设置的权限

[test:/],表示对版本库test设置权限;

[test:/svnadmin],表示对版本库test中的svnadmin项目设置权限;

[test:/svnadmin/second],表示对版本库test中的svnadmin项目的目录设置权限;

 

权限的主体可以是用户组,用户或者*,用户组在前面要以@开头,*表示全部用户

权限分为:r ,w, rw和null ,null空表示没有任何权限。

auhtz配置文件中的每个参数,开头不能有空格,对于组要以@开头,用户不需要。

 

修改passwd文件信息vim passwd

直接将账号和密码信息追加到文件中即可,格式为:账号 = 密码,这里上面如果是设的分组,仍需设置每个角色对应的密码

例如:admin = 123@qwe

 

到此,配置已经全部完成,账号信息已经添加成功

更改svnserver.conf时需要重启SVN服务才生效,更改authz,passwd文件时则不需要重启服务

 

第五步:防火墙开启

多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题

配置防火墙端口

首先要明确CentOS7的默认防火墙为firewallD。subversion的默认端口为3690,如果没有打开会报错:

1: sudo firewall-cmd --permanent --add-service=telnet
2: sudo firewall-cmd --permanent --add-port=3690/tcp
3: sudo firewall-cmd --reload

centOS 7 防火墙开启、关闭与查看状态:
systemctl start firewalld
systemctl stop firewalld
systemctl status firewalld

出现以下情况则代表防火墙没启动用systemctl status firewalld查看防火墙状态

 

启动防火墙

 

配置

 

六:启动svn服务器

# -d : 守护进程  -r : svn数据根目录

svnserve -dr /var/svn            #用root权限启动

查看SVN服务:

ps aux|grep svnserve               #默认端口为:3690

 

设置开机启动

在centos7, 设置开机启动:

sudo systemctl enable svnserve.service  #注意:根目录必须是/var/svn 这样才能设置成功!!

设置开机启动后就可以按下面的方式开启或停止服务了

systemctl start svnserve.service 

systemctl stop svnserve.service

 

7:检出项目
进入windows 检出项目 地址栏输入 svn://项目ip:3690/test
项目ip可以通过 ip addr 或者 ifconfig 查看 inet,test 为当初建立的SVN版本库 可以从上文寻找

 

如果报这样的错:svn: E204900: Can't open file '/var/svn/wangwa/format': Permission denied的错误。那就是与SELinux有关系,这里有两种处理方式:

1、把SELinux关闭

  临时关闭:sudo setenforce 0

  永久关闭:sudo vim /etc/sysconfig/selinux

  修改:SELINUX = disable               #值修改为disable.

2、svn与SElinux的设置(未测试)

  [root@localhost root]# chcon -R --reference=/var/svn /var/svn

  [root@localhost root]# restorecon -v -R /var/svn

 

异常及解决:

如果提示:svnserve: Root path '/var/svn' does not exist or is not a directory.目录不存在

修改etc/sysconfig/svnserve配置文件将OPTIONS="-r /var/svn"改成自己的svndata目录 如"-r/svndata/test"

 

如果提示:svnserve: E000098: Can't bind server socket: Address already in use 端口被占用

先用命令 >netstat -ntlp列出所有端口占用情况,找到端口3690的PID,结束掉些进程: kill PID号;再启动

 

原文地址:https://www.cnblogs.com/zhongyehai/p/10620058.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


首先介绍下什么是git和svnGIT(分布式版本控制系统)Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。SVNSVN是Subversion的简
注意点:系统环境:centos7,python,django,svn,jenkins首先安装好svn版本控制服务,svn安装和配置,也可以通过yum进行安装,安装方式如下yum-yinstallsubversionjenkins安装:jenkins安装参考链接开发ide:pycharm创建项目:django-adminstartprojectcmdbjenkins配置源码管理配置:构
  我使用过的版本控制工具有两种:早期的时候使用的是SVN,现在主要使用git,我就我个人的观点,简单的说下两者的区别:1.Git是分布式的,SVN是集中式的,好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并,也可以不用联网在本地提交;2.Git下载下来后,在本
用好Git和SVN,轻松驾驭版本管理本文从Git与SVN的对比入手,介绍如何通过Git-SVN开始使用Git,并总结平时工作高频率使用到的Git常用命令。 一、GitvsSVNGit和SVN孰优孰好,每个人有不同的体验。Git是分布式的,SVN是集中式的这是Git和SVN最大的区别。若能掌
01.jenkins安装jenkins网站:https://jenkins.io/安装:资料/jenkins.msi安装完成:自动打开浏览器使用8080端口02.jenkins系统配置修改端口号,不能使用8080打开安装目录jenkins.xml --httpPort=18080重启服务器系统管理/系统设置:配置jdk和ant环境  03.jenkins项目自
软件环境:centos7jdk1.8svn1.9maven3.5tomcat8jenkins2.80 以上软件安装过程省略... tomcat增加一个管理员账号和密码jenkins通过maven命令打好的war包,copy到tomcat中,这要求tomcat开启热部署,说白了就是在tomcat的conf目录下的tomcat-users.xml中增加tomcat的用户密码
第一步:通过yum命令安装svnserve,命令如下:yum-yinstallsubversion此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行若需查看svn安装位置,可以用以下命令:rpm-qlsubversion第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)选择在var路
一、git是什么   1、git二、git和svn的对比     1、git创建分支简单,可以快速创建分支,隔绝自己修改的代码,svn的版本分支     2、git本地就是一个完整独立的分布式的版本库,不需要联网;但是svn需要联网才可以查看    3、git本地包含了完整的日志,svn需要从服
这里碰到svn更新时,提示清理,清理时报错:只需进行以下几个步骤即可解决:(原理即是清除掉svn数据库里的lock记录)1、下载SQLiteManager,svn用的是sqlite数据库,需要一款管理工具。我是在这个地址下载的,破解版(http://www.xue51.com/soft/6213.html#xzdz):①默认安装完成后,点击finish
1、验证是否有安装svn[root@192~]#svnserve--version2、yum安装svn[root@192~]#yuminstall-ysubversion3、创建一个svn的工作目录[root@192~]#mkdir/usr/local/svn4、创建一个测试用的资源仓库[root@192svn]#svnadmincreatetest5、conf目录下
1.SVN版本控制简介版本控制[Revisioncontrol],最初来源于工程设计领域,是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。Subversion就是一款实现版本控制的工具软件,通常也称为版本控制器,简称SVN
一、GitvsSVNGit和SVN孰优孰好,每个人有不同的体验。Git是分布式的,SVN是集中式的这是Git和SVN最大的区别。若能掌握这个概念,两者区别基本搞懂大半。因为Git是分布式的,所以Git支持离线工作,在本地可以进行很多操作,包括接下来将要重磅推出的分支功能。而SVN必须联网才
利用svnadminhotcopy可以实现完全备份,但不能进行增量备份。svnadminhotcopy是将整个库都“热”拷贝一份出来,包括库的钩子脚本、配置文件等;任何时候运行这个脚本都得到一个版本库的安全拷贝,不管是否有其他进程正在使用版本库。优点是:备份过程较快,灾难恢复也很快;如果备份机上已经
1》安装1>下载服务端Setup-subversion.msi文件,下载客户端程序TortoiseSVN.mis文件,下载eclipse插件eclipse_svn_site.zip。2》利用服务端在windows下SVN服务,注意事项:1.cmd必须使用管理员权限打开(创建,开启,停止,删除服务操作都需要管理员权限)2.注册svn服务的命令,参考如下
1、错误描述 org.apache.subversion.javahl.ClientException:Itemisnotwritablesvn:Commitfailed(detailsfollow):svn:Accessdeniedorg.apache.subversion.javahl.ClientException:Itemisnotwritablesvn:Commitfailed(detailsfollow):svn:Accessdeni
问题场景:1记得提交的日志信息中包含openssl,但是不记得这次提交的版本号revesion,是svn初始化后中间的某次提交;2svn环境的操作系统平台为Fedora,即命令行下;而且svnlog的提交记录有12659条;[root@localhostv2.1]#svnlog|grepr|wc-l12659解决办法:step1 查找提交日志
将项目上传到SVN弹出框提示Oneadded/editedTODOitemwasfound.Wouldyouliketoreviewit?然后百度说这样解决:造成这个原因是因为代码里有个自动生成的注释代码块://TODOAuto-generatedmethodstub我们在写方法是自动生成,就有可能自动生成这句话,导致上传SVN时弹出那个
说在前面的话: 从接到任务到完成共用了7天的时间。正常人用不到这个时间。此时的功能表现是:登录本地JenKins对项目进行构建,能够自动从SVN读取最新代码并按照Maven项目构建,构建完成能够自动使用SonarQube分析代码质量,并将构建的War包部署到指定容器中。版权声明:此博客纯手打,个人
javaweb上正式的时候总是会需要更新代码,但是要求不能全量更新代码,只能提供增量更新包,减少不必要的更新。但是呢,自己修改的文件那么多,怎么破,一个个的找出来,新建文件夹,按位置放好,这种做法不是我们这群懒人的方式,我们要的都是一键解决问题。因此有了这个项目。小编整理了一些java进
Oracle12CR2forCentos7背景介绍安装配置这东西吧,真没啥可写的,但是你说不写详细点吧,真的好多学员搞不懂,所以呢,熊熊思前想后,打算把自己从头到尾怎么安装的,完全写一下,希望能让大家有个全面的基础认知准备工作安装Xmanager这个软件功能很强大,熊熊安装他主要是用于把远程服务器的