22.1 代码管理平台介绍
22.2 安装svn
22.3 客户端上使用svn(linux)
22.4 客户端上使用svn(windows)
22.1 代码管理平台介绍
代码管理平台也叫版本控制
,记录若干文件内容变化,以便将来查阅特定版本修订情况。
版本管理工具发展简史,cvs —- svn —- git 参考http://luckypoem14.github.io/test/2012/04/24/scm-history/svn
全称subversion
,是一个开源版本控制系统,始于2000年。git
是linux创始人linus发起的,2005年发布,最初目的是更好管理linux内核代码。
git和svn不同在于git不需要依赖服务端就可以工作,即git是分布式的。关于git和svn的比较大家参考http://blog.lishiming.net/?p=305github
是基于git的在线web页面代码托管平台,可以选择付费服务。gitlab
可以认为是一个开源的github,两者没有直接关系。
总结代码管理平台也叫版本控制,svn是基于c/s架构 客户端需要把新代码上传到服务端。git是分布式的,每个客户端都是独立的版本管理中心,代码可以存放在本机上,也可以上传到服务端上来汇总所有的更新。 github是在线的基于git的平台。gitlab与github一样,只是它是开源的。公司多用它来作私人仓库。
22.2 安装svn
由于svn是基于c/s架构的,这里先安装服务端
步骤
1.使用yum安装svn
1 | [root@kun02 ~]# yum install -y subversion |
2.建立版本仓库
1 | [root@kun02 ~]# mkdir -p /data/svnroot/myproject |
仓库路径自定义,说白就是个目录
3.初始化仓库
1 | [root@kun02 ~]# svnadmin create /data/svnroot/myproject |
初始化仓库后可以发现多了些配置文件1
2[root@kun02 myproject]# ls
conf db format hooks locks README.txt
进入conf目录有三个配置文件1
2
3[root@kun02 myproject]# cd conf/
[root@kun02 conf]# ls
authz passwd svnserve.conf
authz
为权限配置文件 passwd
为密码文件 svnserve.conf
配置svnserve
4.编辑authz文件
1 | [root@kun02 conf]# vim authz |
找到[group]并在其下面添下面配置1
2
3
4
5
6
7
8admins = kun,user1 ##admins组中有kun,user1成员
[/] ##指定当前目录用户执行权限
@admins = rw ##admins组成员有读写
* = r ## 其他人只读
[myproject:/] ##等同与[/]
user1 = rw
5.编辑passwd文件
1 | [root@kun02 conf]# vim passwd |
找到[users]并在其下面添下面配置1
2kun = 38003800 ##用户 = 密码
user1 = 38003800
6.编辑svnserve.conf文件
1 | [root@kun02 conf]# vim svnserve.conf |
找到[general]并在其下面添下面配置1
2
3
4
5anon-access = none ##匿名用户没权限
auth-access = write ##授权用户可写
password-db = passwd ##指定用户密码文件路径
authz-db = authz ##指定权限控制文件路径
realm = /data/svnroot/myproject ##指定项目路径
7.启动svn服务
1 | [root@kun02 conf]# svnserve -d -r /data/svnroot/ |
-d
后台启动 -r
指定仓库路径
8.查看是否启动
1 | [root@kun02 conf]# ps aux |grep svn |
svn默认监听3690
端口
22.3 客户端上使用svn(linux)
1.使用yum安装svn
1 | [root@kun02 ~]# yum install -y subversion |
2.在本地建立存放代码的目录并进入该目录中
1 | [root@kun03 ~]# mkdir -p /home/svntest/ |
3.下载项目到本地上
格式:svn checkout svn://IP/项目 --username=用户
1
2
3[root@kun03 svntest]# svn checkout svn://192.168.80.101/myproject --username=kun
认证领域: <svn://192.168.80.101:3690> /data/svnroot/myproject
“kun”的密码:
第一次登录后用户名和密码都会记录在/root/.subversion/auth/svn.simple
中1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18[root@kun03 myproject]# cat /root/.subversion/auth/svn.simple/82a016f02d6481c74004b29a01fce64c
K 8
passtype
V 6
simple
K 8
password
V 8
38003800
K 15
svn:realmstring
V 51
<svn://192.168.80.101:3690> /data/svnroot/myproject
K 8
username
V 3
kun
END
上传数据到服务端
1.进入本地项目添加更改数据
1 | [root@kun03 svntest]# cd myproject/ |
2.为数据添加上传标签
格式:svn add 更改的文件
1
2[root@kun03 myproject]# svn add ./passwd
A passwd
3.提交上传数据
格式:svn commit -m “备注内容”
1
2
3
4[root@kun03 myproject]# svn commit -m "add passwd"
正在增加 passwd
传输文件数据.
提交后的版本为 1。
更新最新版本的数据到本地
格式:svn up
或者 svn update
1
2
3
4[root@kun03 myproject]# svn up
正在升级 '.':
U passwd
更新到版本 2。
删除数据
1.删除本地数据并打标记
格式:svn delete 删除的文件
1
2[root@kun03 myproject]# svn delete ./passwd
D passwd
2.提交删除数据
格式:svn commit -m “备注内容”
1
2
3
4[root@kun03 myproject]# svn commit -m "delete passwd"
正在删除 passwd
提交后的版本为 3。
查看版本历史
格式:svn log
1
2
3
4
5
6
7
8
9
10
11
12
13
14[root@kun02 myproject]# svn log
------------------------------------------------------------------------
r3 | kun | 2018-08-29 06:55:49 +0800 (三, 2018-08-29) | 1 行
delete passwd
------------------------------------------------------------------------
r2 | kun | 2018-08-29 06:49:16 +0800 (三, 2018-08-29) | 1 行
ch passwd
------------------------------------------------------------------------
r1 | kun | 2018-08-29 06:34:10 +0800 (三, 2018-08-29) | 1 行
add passwd
------------------------------------------------------------------------
22.4 客户端上使用svn(windows)
在window下使用tortoisesvn软件,简称小乌龟 官网 https://tortoisesvn.net/index.zh.html
简明教程 http://www.jianshu.com/p/6b3b7b915332
去官网上下载小乌龟和中文语言的安装包
我们在本地上创建一个目录使用右键点击目录
输入服务器的项目路径和用户来下载项目到本地上
新建一个文件右键—-tortoisesvn
—-add
—-svn commit
输入备注
当服务端有新数据后右键目录—-svn update