linux 搭建svn服务器的方法步骤

一:安装svn

yum install -y subversion

二:创建仓库

1:创建仓库目录

mkdir -p /var/project/test

2:创建仓库

svnadmin create /var/project/test

创建成功后,在/var/project/test目录下如下目录:

drwxr-xr-x. 2 root root  51 1月 30 13:26 conf
drwxr-sr-x. 6 root root 4096 1月 30 13:26 db
-r--r--r--. 1 root root  2 1月 30 13:26 format
drwxr-xr-x. 2 root root 4096 1月 30 13:26 hooks
drwxr-xr-x. 2 root root  39 1月 30 13:26 locks
-rw-r--r--. 1 root root 229 1月 30 13:26 README.txt

conf目录下是svn的配置目录,其中包括:

-rw-r--r--. 1 root root 1080 1月 30 13:26 authz      #权限控制
-rw-r--r--. 1 root root 309 1月 30 13:26 passwd      #密码管理
-rw-r--r--. 1 root root 3090 1月 30 13:26 svnserve.conf    #SVN服务进程配置

三:svn配置

1:权限配置(/var/project/test/conf/authz)

#用户分组(admin->管理员,development ->开发 other->其他)
[groups]
admin = test1  #管理员用户test1
development = test2,test3  #开发用户test2,test3
other = test4,test5,test6    #其他用户test4,,test5,test6
#权限配置
[/]
@admin = rw  #管理员读写权限
@development = rw  #开发读写权限
@other = r        #其他读权限
test7 = rw        #test7用户读写权限

2:密码配置(/var/project/test/conf/passwd)

#密码配置,格式为用户名=密码,密码为明文
[users]
test1 = test1
test2 = test2
test3 = test3
test4 = test4
test5 = test5
test6 = test6
test7 = test7

3:SVN服务进程配置(/var/project/test/conf/svnserve.conf)

[general]
anon-access = none   #匿名用户无权访问
auth-access = write   #认证用户可读写
password-db = passwd  #指定用户认证密码文件
authz-db = authz    #指定权限配置文件

四:启动svn服务(默认端口号3690)

代码如下:

svnserve -d -r /var/project    #-d 服务后台运行 -r 指定工作目录,/var/project表示指定工作目录,注意不能指定仓库名地址(/var/project/test)

指定端口启动svn

svnserve -d -r /var/project --listen-port 3691

五:关闭防火墙,或开启指定端口号

1:关闭防火墙

systemctl stop firewalld

2:开启指定防火墙

#开启3690端口
firewall-cmd --zone=public --add-port=3690/tcp --permanent
#刷新配置
firewall-cmd --reload

六:客户端连接并上传文件

windows上连接svn

1:新建一个目录,右击选择svn 检出

2:在版本库上填写linux的svn地址 svn://ip:3690/仓库名 (这里的仓库名不是/var/project/test而是/test)

2:填写用户名密码

这时候我们可以看到此目录下生成了一个.svn文件,说明我们已经连接上了linux上的svn服务器

3:上传文件

现在我们新建一个test.txt文件,在里面随便填一些信息

(1)右击选择add

然后选择test.txt文件,点击确定,这时候我们会看到test.txt文件上会多了一个加号

(2):上传

右击选择提交

填写备注选择要上传的文件后点击确定

这时候我们可以看到test.txt文件上的加号会变成绿色的对号,表示上传成功

但是这时候我们发现我们在/var/project/test目录下根本就没有找到我们上传的文件,这是为什么呢?难道我们没有上传成功,
这是由于把文件上传到SVN版本库后,上传的文件不再以文件原来的格式存储,而是被svn以它自定义的格式压缩成版本库数据,存放在版本库中,svn服务器版本库有两种格式,一种为FSFS,一种为BDB
这时候我们就需要在linux中实现检出

4:检出

svn checkout svn://192.168.11.201/test /data/test #svn://192.168.11.201/test表示需要检出的仓库地址 /data/test表示需要检出到哪个目录下

这是我们可以在/data/test目录下看到我们之前在客户端上传的文件,但是现在问题又来了,我们在客户端上传文件之后,不可能每次都在服务器进行检出操作吧,那么如何进行自动检出呢?

5:自动检出配置

在/var/project/test/hooks目录下新建一个post-commit文件,post-commit文件添加内容为:

#!/bin/sh
REPOS="$1"      #仓库
REV="$2"        #版本号
export.UTF-8      #编码
SVN=/usr/bin/svn  #svn地址
WEB=/data/test  #要更新的项目目录
$SVN update $WEB --username test1 --password test1 #--username test1表示设置用户名 --password test1表示设置密码

将post-commit设置为可执行

chmod +x /var/project/test/hooks/post-commit

到此自动检出配置完成,不过注意,第一次的时候需要手动检出,之后就不需要了,到此linux搭建svn服务器完成

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • CentOS7将Nginx添加系统服务的方法步骤

    导语 经过编译安装以及解决问题,Nginx 已经运行正常,但是此时 Nginx 并没有添加进系统服务.接下来会将 Nginx 添加进系统服务并且设置开机启动. 查看服务 首先查看 Nginx 的服务状态,输入 systemctl status nginx,结果如下 没有找到相关的服务,下一步就是添加系统服务. 添加系统服务 在 /usr/lib/systemd/system 目录中添加 nginx.service,根据实际情况进行修改,详细解析可查看下方参考资料中的文章.内容如下 [Unit]

  • 取消Android Studio项目与SVN关联的方法

    在使用SVN过程中可能有时因为一些原因,不想再使用SVN了,我们想取消与SVN的关联,让Android项目恢复到原始状态,不想有哪些花花绿绿的颜色了,怎么办呢,操作起来很简单 把Android Studio切换到Project模式,有个.idea文件夹,在该文件夹下找到vcs.xml文件,打开该文件,把里面的内容替换成如下代码即可. <?xml version="1.0" encoding="UTF-8"?> <project version=&q

  • Centos7修改主机名hostname的三种方法

    方法一 hostnamectl修改 Step1 查看主机名 hostname Step2  修改主机名 命令形式 hostnamectl set-hostname 主机名 修改 hostnamectl set-hostname Master Step3  再次查看主机名 hostname 无需重启只需新开会话便可变为新的主机名 方法二 通过修改文件 修改文件 vi /etc/hostname 添加主机名 Slave01 vi /etc/sysconfig/network 添加IP和hostnam

  • IntelliJ IDEA使用SVN分支的简单介绍

    说是要创建个SVN的分支,用于单独的定制化项目的开发.与主干项目分开.所以,要创建个branch.翻译一下就是分支的意思啦. 下面看怎么操作吧. 选择项目,右键,然后如图操作. 就会出现下图. 对图稍微解释一下. copy from : 就是从哪个地方取数据来当作svn仓库的初始源码. 有2个选项,二选一. working copy: 估计就是把你本地的那个目录下面的项目文件,作为svn仓库的初始,copy 源. 注意,要是使用这个选项,有些个是不需要提交到svn管理的,比如,web项目的tar

  • 阿里云Centos7安装svn与配置讲解

    1.安装svn服务器端 yum install subversion 2.创建一个svn版本仓库(可随意创建) //创建一个svn目录 mkdir -p /svn/repos //修改目录权限为777 chmod -R 777 repos //创建一个svn版本仓库first(first可以随便起名字) svnadmin create /svn/repos/first 3.下面要修改这个目录下的三个配置文件(键值后面对不能有空格) //进入刚刚创建的版本仓库目录 cd /svn/repos/fi

  • SVN服务备份操作步骤分享

    SVN服务备份操作步骤 1.准备源服务器和目标服务器 源服务器:192.168.1.250 目标服务器:192.168.1.251 root/rootroot 2.对目标服务器(251)装SVN服务器, 脚本如下: yum install subversion 3.创建一个新的仓库 (svnadmin create 路径),脚本如下: svnadmin create ~/svn-storage-bak 4.进入svn-storage-bak这个仓库的根目录中,脚本如下: cd ~/svn-sto

  • maven项目在svn中的上传与检出的方法

    前言 企业开发中经常使用svn来为我们控制代码版本,也经常使用maven来管理项目.下面将介绍一下如何将maven项目上传到svn中,如何将项目从svn中检出. 上传到svn maven项目上传与普通项目上传并无区别.这里做一下简单介绍: 右击项目:选择Team:选择Share Project: 仓库类型选择svn 点击next 选择你要分享的资源库.点击next 选择使用指定的模块名.然后在浏览中选择要上传的位置.然后点击finish. 点击finish后进入同步视图界面.这个界面需要我们选择

  • MAC上IntelliJ IDEA的svn无法保存密码解决方案

    有的人的电脑在使用 IntelliJ IDEA 的svn 时候,无法保存密码, 输入密码时,勾选保存密码还是无效. 每次都的输入密码,一次浪费2秒钟,一天浪费多少时间啊. 如下操作: 然后. 这地方,我画了几个框框. 先是选择左边的2个都是第一个选项,然后在右边的搜索框搜索"svn". 如果,没有结果,不要着急,冷静点. 下面不还是有个"+"符号呢嘛,点击添加个就好. 可以参照着我的这个,你自己把地址和账号密码给配置一下,就OK啦. 上面是我的svn的配置,可以照着

  • Webstorm2017上SVN插件安装的方法步骤

    安装Webstorm2017后,要使用svn版本控制,以下步骤介绍如何安装配置SVN 1.安装SVN 我这里使用的是TortoiseSVN-1.9.4.27285-x64-svn-1.9.4,本地下载地址://www.jb51.net/softs/200754.html TortoiseSVN中文版的安装配置与使用教程://www.jb51.net/softjc/567095.html 安装过程需要注意的是,默认安装没有选择"command line client tools",这里需

  • SVN报错:Error Updating changes:svn:E155037的解决方案

    今天提交代码的时候突然发现IDEA的SVN面板Version Control下面多出来这么一句话: 顿时心里咯噔一下,这肯定不是好事啊.果然,SVN不能更新了,也不能提交了.网上搜了一下,是因为SVN操作冲突了.按照提示的意思在项目Subversion下面Cleanup了一把,可是没用,这个错还在,依然无法更新提交. 这种情况下,要么删除项目,重新checkout,代价太大.要么用这个方法解决: SVN的操作信息存放在一个叫做"work queue"的表里,而work queue表存放

随机推荐