代码管理平台—svn

内容摘要
一、代码管理平台介绍
二、 安装svn
三、客户端上使用svn(linux)
四、客户端上使用svn(windows)

一、代码管理平台介绍

  1. 代码管理平台也叫版本控制,记录若干文件内容变化,以便将来查阅特定版本修订情况。
  2. 版本管理工具发展简史,cvs —- svn —- git,参考:(http://luckypoem14.github.io/test/2012/04/24/scm-history/)
  3. svn全称subversion,是一个开源版本控制系统,始于2000年。git是linux创始人linus发起的,2005年发布,最初目的是更好管理linux内核代码。
  4. git和svn不同在于git不需要依赖服务端就可以工作,即git是分布式的。关于git和svn的比较大家参考:http://blog.lishiming.net/?p=305
  5. github是基于git的在线web页面代码托管平台,可以选择付费服务。
  6. gitlab可以认为是一个开源的github,两者没有直接关系。
  7. 总结
    代码管理平台也叫版本控制,svn是基于c/s架构 客户端需要把新代码上传到服务端。git是分布式的,每个客户端都是独立的版本管理中心,代码可以存放在本机上,也可以上传到服务端上来汇总所有的更新。 github是在线的基于git的平台。gitlab与github一样,只是它是开源的。公司多用它来作私人仓库。

二、 安装svn

由于svn是基于c/s架构的,这里先安装服务端

步骤


  1. 使用yum安装svn
[root@aming-01 ~]# yum install -y subversion
  1. 建立版本仓库并初始化
[root@aming-01 ~]# mkdir -p /data/svnroot/myproject
[root@aming-01 ~]# svnadmin create /data/svnroot/myproject
  1. 初始化仓库后可以发现多了些配置文件
[root@aming-01 myproject]# ls
conf  db  format  hooks  locks  README.txt
  1. 进入conf目录有三个配置文件
[root@aming-01 myproject]# cd conf/
[root@aming-01 conf]# ls
authz  passwd  svnserve.conf

authz为权限配置文件 passwd为密码文件 svnserve.conf配置svnserve

  1. 编辑authz文件
admins = zhaoyujie,shenxinyu   ##admins组中有zhaoyujie,shenxinyu成员

[/]                    ##指定当前目录用户执行权限
@admins = rw   ##admins组成员有读写
* = r                   ## 其他人只读

[myproject:/]  ##等同与[/],一般存在多个项目时这样使用
user1 = rw
  1. 编辑passwd文件
[root@aming-01 conf]# vim passwd 
找到[users]并在其下面添加内容如下:
zhaoyujie = 38003800    ##用户 = 密码
shenxinyu = shenxinyu
  1. 编辑svnserve.conf文件
[root@aming-01 conf]# vim svnserve.conf [general]下添加如下内容:
[general]
non-access = none        ##匿名用户没权限
auth-access = write      ##授权用户可写
password-db = passwd     ##指定用户密码文件路径
authz-db = authz          ##指定权限控制文件路径
realm = /data/svnroot/myproject  ##指定项目路径
  1. 启动svn服务
[root@aming-01 conf]# svnserve -d -r /data/svnroot

-d 后台启动 -r 指定仓库路径

  1. 查看是否启动
[root@aming-01 conf]# ps aux |grep svn
root      1607  0.0  0.0 180716   812 ?        Ss   20:53   0:00 svnserve -d -r /data/svnroot
root      1621  0.0  0.0 112720   980 pts/0    R+   21:00   0:00 grep --color=auto svn
[root@aming-01 conf]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      1126/zabbix_server  

三、客户端上使用svn(linux)

  1. 使用yum安装svn
[root@aming-01 ~]# yum install -y subversion
  1. 在本地建立存放代码的目录并进入该目录中
[root@aming-01 conf]# mkdir -p /home/svntest/
[root@aming-01 conf]# cd /home/svntest/
  1. 下载项目到本地上
    格式:svn checkout svn://IP/项目 --username=用户
[root@zhaoyujie svntest]# svn checkout svn://192.168.157.130/myproject --username=zhaoyujie
认证领域: <svn://192.168.157.130:3690> /data/svnroot/myproject
“zhaoyujie”的密码:

第一次登录后用户名和密码都会记录在/root/.subversion/auth/svn.simple

[root@aming-01 myproject]# cat /root/.subversion/auth/svn.simple/e06a6eb8f7acb609753cdc4eaa8cd623 
K 8
passtype
V 6
simple
K 8
password
V 8
38003800
K 15
svn:realmstring
V 52
<svn://192.168.157.128:3690> /data/svnroot/myproject
K 8
username
V 9
zhaoyujie
END

上传数据到服务端

  1. 进入本地项目添加更改数据
[root@aming-01 myproject]# cd /home/svntest/myproject/
[root@aming-01 myproject]# cp /etc/passwd ./
  1. 为数据添加上传标签

    格式:svn add 更改的文件
[root@aming-01 myproject]# svn add ./passwd
A         passwd
  1. 提交上传数据

    格式:svn commit -m “备注内容”
[root@aming-01 myproject]#  svn commit -m "add passwd"
正在增加       passwd
传输文件数据.
提交后的版本为 1。
  1. 更新最新版本的数据到本地

    格式:svn up或者 svn update
[root@aming-01 myproject]# svn up
正在升级 '.':
U    passwd
更新到版本 2。
  1. 删除本地数据并打标记

    格式:格式:svn delete 删除的文件
[root@aming-01 myproject]# svn delete ./passwd
D         passwd
  1. 提交删除数据

    格式:svn commit -m “备注内容”
[root@aming-01 myproject]# svn commit -m "delete passwd"
正在删除       passwd

提交后的版本为 3。
  1. 查看版本历史

    格式:svn log
root@aming-01 myproject]# svn log
------------------------------------------------------------------------
r3 | zhaoyujie | 2018-08-29 06:55:49 +0800 (三, 2018-08-29) | 1 行

delete passwd
------------------------------------------------------------------------
r2 | zhaoyujie | 2018-08-29 06:49:16 +0800 (三, 2018-08-29) | 1 行

ch passwd
------------------------------------------------------------------------
r1 | zhaoyujie | 2018-08-29 06:34:10 +0800 (三, 2018-08-29) | 1 行

add passwd
------------------------------------------------------------------------

四、客户端上使用svn(windows)

在window下使用tortoisesvn软件,简称小乌龟 官网 https://tortoisesvn.net/index.zh.html

简明教程 http://www.jianshu.com/p/6b3b7b915332
代码管理平台—svn_第1张图片
我们在本地上创建一个目录使用右键点击目录

代码管理平台—svn_第2张图片

输入服务器的项目路径和用户来下载项目到本地上
代码管理平台—svn_第3张图片

新建一个文件右键—-tortoisesvn—-add—-svn commit
代码管理平台—svn_第4张图片

输入备注

代码管理平台—svn_第5张图片

当服务端有新数据后:右键目录—-svn update

代码管理平台—svn_第6张图片

你可能感兴趣的:(笔记)