SVN版本控制服务 搭建与使用

SVN简介

SVN是一个开源的版本控制系统,SVN管理着随时间改变的数据。这些数据放置在一个中央资料档案库中,这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的改动。

SVN的概念:

  • repository:源代码库,源代码统一存放的地方;
  • checkout:提取,当电脑上没有源代码的时候,需要从仓库checkout一份
    - commit:提交,当有修改过的代码,需要commit到repository
  • update:更新,当已经checkout一份源代码,update以下就可以和repository上的源代码同步了,这样手上的资料便是最新的

日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了) 。

系统环境

主机 操作系统 IP地址
SVN Server Centos 7.3 X86_64 192.168.96.22
Client Centos 7.3 X86_64 192.168.96.16

开始安装

关闭防火墙及Selinux

setenforce 0
systemctl stop firewalld

1.安装svn软件包

yum install subversion -y

2.查看版本

svnserve --version

SVN版本控制服务 搭建与使用

3.新建版本库目录

mkdir -p /svn/data

4.创建版本库

svnadmin create /svn/data/

5.查看仓库目录

ls !$

SVN版本控制服务 搭建与使用

6.启动svn服务

svnserve -d -r /svn/data/

7.检查svn服务是否启动

netstat -tunlp | grep svnserve

SVN版本控制服务 搭建与使用

8.进入版本库目录

cd /svn/data/conf/

9.编辑svn服务配置文件svnserve.conf

vim svnserve.conf

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

anon-access: 控制非鉴权用户访问版本库的权限,取值范围为"write"、"read"和"none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。 缺省值:read
auth-access: 控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。 缺省值:write
authz-db: 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径。 缺省值:authz
realm: 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的 认证域相同,建议使用相同的用户名口令数据文件。 缺省值:一个UUID(Universal Unique IDentifier,全局唯一标示)。

10.编辑用户名口令passwd文件,配置用户信息

vim passwd

zhangsan = abc123
admin = abc123

11.编辑authz配置文件,指定用户的权限

vim authz

[/]
zhangsan = r
admin = r

[/web]
zhangsan = rw
admin = rw

12.创建目录

mkdir web

13.将web导入到本地的svn工程仓库中

svn import web/ file:///svn/data/web -m "初始化SVN目录"

通过Linux客户机连接SVN

1.关闭防火墙及Selinux

setenforce 0
systemctl stop firewalld

2.安装svn软件包

yum -y install svn

3.连接svn服务器

svn co svn://192.168.96.22/web

SVN版本控制服务 搭建与使用

4.查看并创建目录

SVN版本控制服务 搭建与使用


基本操作说明:

1.check out

检出获得文件后,检出的文件仍处于SVN版本控制中,与版本库保持关联,比如你可以进行Svn Update或者Svn Commit操作。同时导出文件夹下有一个.svn的隐藏文件夹,存储着一些版本的元数据信息。(对于导入到服务器中的数据,需要检出才能形成一个受svn控制的工作拷贝,才可以进行 add update commit 等操作)

2.export

简单导出一个版本的数据(把服务器中的数据导出来,相当于复制一份),导出的文件脱离SVN版本控制(导出的就是一个文件,与svn版本没关系),导出后也无法进行Update和Commit操作。导出文件夹下没有.svn目录

3.import

仅仅是把文件导入到svn服务器中,而这个文件本身还只是一个普通的文件,与svn版本库没有关系(导入时需要svn服务器的地址,可以从服务器复制下来,在Repositories下的版本库右击复制)

4.add

把新创建的文件添加到缓存区(执行后显示一个加号),需commit提交才能真正上传到服务器(显示对号)

5.update

把服务器上最新的版本更新下来,比如别人上传的版本(一般提交之前需先更新,否则别人上传的新版本你没有更新下来就会被覆盖,别人上传的就丢失了)

猜你喜欢

转载自blog.51cto.com/10316297/2152468
今日推荐