SVN版本控制服务 搭建与使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
3.新建版本库目录
mkdir -p /svn/data
4.创建版本库
svnadmin create /svn/data/
5.查看仓库目录
ls !$
6.启动svn服务
svnserve -d -r /svn/data/
7.检查svn服务是否启动
netstat -tunlp | grep svnserve
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
4.查看并创建目录
基本操作说明:
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
把服务器上最新的版本更新下来,比如别人上传的版本(一般提交之前需先更新,否则别人上传的新版本你没有更新下来就会被覆盖,别人上传的就丢失了)
以上是关于SVN版本控制服务 搭建与使用的主要内容,如果未能解决你的问题,请参考以下文章
[转]TortoiseSVN与VisualSVN Server搭建SVN版本控制系统
(转)TortoiseSVN与VisualSVN Server搭建SVN版本控制系统
TortoiseSVN与VisualSVN Server搭建SVN版本控制系统转
VisualSVN Server与TortoiseSVN搭建SVN版本控制系统