https://www.cnblogs.com/Dev0ps/p/8342114.html参考
1.1 什么是SVN(subversion)
SVN是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个固态的跨平台的开源的版本控制系统。SVN版本管理工具管理者随时间改变的各种数据。这些数据放置在一个中央资料档案库(repository)中,这个档案库很像一个普通的文件服务器或者FTP服务器,但是,与其他服务器不同的是,SVN会备份并记录每个文件每一次的修改更新变动。这样我们就可以把任意一个时间点的档案恢复到想要的某一个旧的版本,当然也可以直接浏览指定的更新历史记录。
为什么会有SVN这样一个项目?
官方解释:为了接管CVS的用户基础,确切的说,我们写了一个新的版本控制系统,它和CVS很相似,但是它修正了以前CVS所没有解决的许多问题。
SVN时一个非常通用的软件系统,它常被用来管理程序 源码,但是他也可以管理任何类似的文件,如文本、视频,图片等等。
2 SVN与git的区别
2.1 SVN集中式版本控制系统
SVN版本控制系统时集中式的数据管理,存在一个中央版本库,所有开发人员本地开发所使用的代码都是来自于这个版本库,提交了代码也都必须提交到这个中央版本库。
SVN版本控制系统工作流程如下:
- 在中央库上创建或从主干复制一个分支。
- 从中央库check out下这个分支的代码。
- 增加自己的代码文件,修改现存的代码或删除代码文件。
- Commit代码。假设有人在刚刚的分支上提交了代码,你就会被提示代码过期。
你得先up你的代码后再提交。Up代码的时候如果出现冲突,需要解决冲突后再进行提交。
2.2 git分布式版本控制
Git是由Linus开发的,所以很自然的git个Linux文件系统结合的比较紧密,以至于在Windows上你必须使用cygwin才能使其完美工作。
那git凭什么叫做分布式的版本控制系统呢?还是从模式讲起。
Git中没有了中央版本库的说法了,但是为了开发小组的代码共享,从某种程度上说本地的仓库和远程的仓库在身份上是等价的,没有主从之分。
如果你的项目是闭源项目,或者你习惯于以往的集中式的管理模式的的话,那么在git下你也可以像SVN那么工作,知识流程中可能增加一些步骤。
你本地创建一个git库,并将其add到远程git库中
你在本地添加或者删除文件,然互commit。当然commit操作都是提交到本地的git库中了(其实是提交到git目录下的object目录中去了)
将本地git库的分支push到远程git库的分支,如果这个时候远程git库中已经有别人push过,那么远程git库将不允许你push,这个时候你需要先pull,然后如果有冲突,处理好冲突,commit到本地git库后,再push到远程git库。
第二章 安装配置SVN服务
安装SVN
[root@svn ~]# yum install subversion -y
配置并启动SVN
创建SVN版本库数据存储目录
mkdir -p /application/svndata
创建用户密码权限目录
mkdir -p /application/svnpasswd
初始化(创建项目,共享的目录)
svnadmin create /application/svndata/sadoc
编辑配置文件:
cd /application/svndata/sadoc/conf
vim svnserve.conf(修改完前面不能有空格)
12 # anon-access = read ==> read改为none (禁止匿名访问)
13 # auth-access = write ==> 去掉前面井号注释 (认证访问)
20 # password-db = passwd ==> password-db = /application/svnpasswd/passwd (密码文件)
27 # authz-db = authz ==> authz-db = /application/svnpasswd/authz (授权文件)
拷贝授权文件 和 密码文件:
[root@web01 conf]# cp authz passwd /application/svnpasswd/
启动svn:
[root@web01 conf]# svnserve -d -r /application/svndata
检查端口,启动成功
[root@web01 conf]# lsof -i:3690
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
svnserve 15419 root 3u IPv4 60659 0t0 TCP *:svn (LISTEN)
配置用户和密码
创建用户密码:
[root@web01 conf]# vim /application/svnpasswd/passwd
格式:用户 = 密码
[users]
# harry = harryssecret
# sally = sallyssecret
zzgx = zzgx123 新
erjie = erjie123 添
dapeng = dapeng123 加
pangpang = pangpang123 的
给用户授权:
[root@web01 conf]# vim /application/svnpasswd/authz
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
ABC = dapeng,pangpang 新建的组
# [/foo/bar]
# harry = rw
# &joe = r
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[sadoc:/] 授权的项目
zzgx = rw
erjie = rw
@ABC = r
注意:
1、权限配置文件中出现的额用户名必须已在用户配置文件中定义。
2、对权限配置文件的修改立即生效,不必重启svn。
用户组格式:
[groups]
= ,
其中,1一个ABC组可以包含1和或多个用户,用户间以逗号分隔。
版本库目录格式:
[版本库:/项目/目录]
@用户组名=权限
用户名=权限
其中,方括号内部分可以有多种写法:
[/],表示根目录及以下,跟目录是svnserve启动时指定的
[repos:/]表示对版本库repos设置权限;
[repos:/sadoc]表示对版本库repos中的sadoc项目设置权限;
[repos:/sadoc/web]表示对版本库repos中的sadoc项目的web目录设置权限;
第三章 客户端软件TortoiseSVN SVN安装
Win32位操作系统
http://sourceforge.net/projects/tortoisesvn/files/1.6.16/root/TortoiseSVN-1.6.16.21511-win32-svn-1.6.17.msi/download
Win64位操作系统
http://sourceforge.net/projects/tortoisesvn/files/latest/download
软件down下来后,双击安装即可
第四章 Linux下SVN管理
创建库
svn co svn://10.0.0.7/sadoc /root/sadoc/ --username=xxx --password=xxx
查看服务器端的数据
[root@web01 sadoc]# svn ls svn://10.0.0.7/sadoc/ --username=xxx --password=xxx
[root@web01 sadoc]# svn ls svn://10.0.0.7/sadoc/ --username=xxx --password=xxx --verbose
本地查看svn内容
[root@web01 sadoc]# svn list file:///application/svndata/sadoc/
当Windows发生改变可以使用下面命令更新Linux服务端数据
[root@web01 sadoc]# svn co svn://10.0.0.7/sadoc/ /root/sadoc/ --username xxx --password xxx
本地提交数据
[root@web01 sadoc]# mkdir aaa
[root@web01 sadoc]# svn aaa
A aaa
[root@web01 sadoc]# svn ci -m "w t f"
Adding aaa
把提交内容下载到本地:
[root@mha03 sadoc]# svn update
windows查看
右键点击 在checkout即可