代码管理平台就是实现版本控制的软件,为了以后网站、项目等代码版本控制的简便,需要搭建一个代码管理平台。比如以后老板要让你写一个文档,但是你拿给老板看后,有要求你多次修改文档,那你就要有很多作废的文档在电脑里,而每个文档具体改了什么也不清楚。而版本控制就可以很好的告诉你每次更新都改了什么。

理论篇

一、 代码管理平台常识

任务1.1 代码管理平台常识

(1)代码管理工具发展简史

版本控制:记录若干文件内容变化,以便将来查阅特定版本修订情况。
版本管理工具发展简史,CVS→SVN→Git 。
参考http://luckypoem14.github.io/test/2012/04/24/scm-history/。

(2)svn与git的开端

SVN全称subversion,是一个开源版本控制系统,始于2000年。
Git是Linux创始人Linus发起的,2005年发布,最初目的是更好管理Linux内核代码。

(3)SVN与Git的区别

Git和SVN不同在于Git不需要依赖服务端就可以工作,即Git是分布式的。
关于Git和SVN的比较大家参考http://blog.lishiming.net/?p=305。

(4)简单了解GitLab与GitHub

GitHub是基于Git的在线Web页面代码托管平台,可以选择付费服务。
GitLab可以认为是一个开源的GitHub,两者没有直接关系。

二、 SVN的安装与使用

2.1 安装SVN

服务端安装:
安装并查看

  1. [root@localhost ~]# yum install -y subversion
  2. [root@localhost ~]# rpm -qa |grep subversion
  3. subversion-1.7.14-16.el7.x86_64
  4. subversion-libs-1.7.14-16.el7.x86_64

创建版本库

[root@localhost ~]# mkdir -p /data/svnroot/myproject
[root@localhost ~]# svnadmin create /data/svnroot/myproject
[root@localhost ~]# cd /data/svnroot/myproject/conf
[root@localhost conf]# ls
authz  passwd  svnserve.conf
//authz为权限配置文件,passwd为密码文件

将配置文件更改如下

[groups]
admins = yx,user1
[/]
@admins=rw
*=r

[myproject:/]
user1=rw

image.png

vim passwd
yx=123
user1=1000
user2=2000

image.png

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /data/svnroot/myproject

image.png
启动

[root@localhost conf]# svnserve -d -r /data/svnroot
[root@localhost opt]# svn checkout svn://192.168.100.3/myproject --username=yx
认证领域: <svn://192.168.100.3:3690> /data/svnroot/myproject
“yx”的密码: 

-----------------------------------------------------------------------
注意!  你的密码,对于认证域:

   <svn://192.168.100.3:3690> /data/svnroot/myproject

只能明文保存在磁盘上!  如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。

你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。
-----------------------------------------------------------------------
保存未加密的密码(yes/no)?y
取出版本 0。
[root@localhost opt]# ls
myproject
[root@localhost opt]# ls -a myproject/
.  ..  .svn
[root@localhost opt]#

2.2 使用SVN
再准备另一台虚拟机做客户端,在客户端使用

[root@localhost opt]# hostnamectl set-hostname client 
[root@localhost opt]# su
[root@client opt]# su -
上一次登录:四 8月 26 10:25:59 CST 2021pts/0 上
[root@client ~]#
[root@client ~]# svn checkout svn://192.168.100.3/myproject --username=yx
取出版本 0。
[root@client ~]# 
[root@client ~]# cd myproject/
[root@client myproject]# ls
[root@client myproject]# ls -al
总用量 0
drwxr-xr-x. 3 root root  18 8月  26 10:27 .
dr-xr-x---. 4 root root 187 8月  26 10:27 ..
drwxr-xr-x. 4 root root  75 8月  26 10:28 .svn
[root@client myproject]#

image.png

//上传文件至服务器
[root@client myproject]# cp /etc/fstab .
//添加到版本控制中心
[root@client myproject]# svn add fstab 
A         fstab
[root@client myproject]#

image.png

//把文件上传到服务器
[root@client myproject]# svn commit -m "add fstab file"
正在增加       fstab
传输文件数据.
提交后的版本为 1。
[root@client myproject]# 
//在本地删除
[root@client myproject]# svn delete fstab 
D         fstab
[root@client myproject]# 
在服务器上提交删除操作
[root@client myproject]# svn commit -m "delete fstab file"
正在删除       fstab
提交后的版本为 2。
[root@client myproject]#

image.png.

把当前目录下的文件都更新到最新版
[root@client myproject]# svn update
正在升级 '.':
版本 2。

查看变更日志
[root@client myproject]# svn log
------------------------------------------------------------------------
r2 | sxb | 2021-08-12 15:57:16 +0800 (四, 2021-08-12) | 1 行

delete fstab file
------------------------------------------------------------------------
r1 | sxb | 2021-08-12 15:55:13 +0800 (四, 2021-08-12) | 1 行

add fstab file
------------------------------------------------------------------------
[root@client myproject]#

image.png

2.3 Windows中使用SVN

官网:https://tortoisesvn.net/index.zh.html
下载TortoiseSVN并安装:

(1)下载TortoiseSVN 并安装

image.png
image.png
image.png
image.png
image.png
image.pngimage.png
image.pngimage.png
image.png
image.png
image.pngimage.pngimage.png
image.pngimage.png
image.png

[root@client myproject]# ls -a
.  ..  .svn
[root@client myproject]# svn update
正在升级 '.':
A    yjs.txt
更新到版本 3。
[root@client myproject]# ls -a
.  ..  .svn yjs.txt
[root@client myproject]#

Windows中的SVN会有各种图标提示,如果没有重启即可解决。
image.png
image.png
代码管理平台 - 图27
查看日志
image.png