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

理论篇

一、 代码管理平台常识

任务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

创建版本库

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

将配置文件改为如下

  1. [root@localhost conf]# vim authz
  2. [groups]
  3. admins = sxb,user1
  4. [/]
  5. @admins = rw
  6. * = r
  7. [myproject:/]
  8. user1 = rw

image.png

  1. [root@localhost conf]# vim passwd
  2. sxb = 123456
  3. user1 = user1000
  4. user2 = user2000

image.png

  1. [root@localhost conf]# vim svnserve.conf
  2. [general]
  3. anon-access = none
  4. auth-access = write
  5. password-db = passwd
  6. authz-db = authz
  7. realm = /data/svnroot/myproject

image.png

  1. 启动服务
  2. [root@localhost conf]# svnserve -d -r /data/svnroot
  1. 拉取项目
  2. [root@localhost conf]# cd
  3. [root@localhost ~]# svn checkout svn://192.168.100.10/myproject --username=sxb
  4. 认证领域: <svn://192.168.100.10:3690> /data/svnroot/myproject
  5. sxb”的密码: //输入密码123456
  6. 注意! 你的密码,对于认证域:
  7. <svn://192.168.100.10:3690> /data/svnroot/myproject
  8. 只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让 Subversion
  9. 可以保存加密后的密码。请参阅文档以获得详细信息。
  10. 你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
  11. 来避免再次出现此警告。
  12. 保存未加密的密码(yes/no)?yes
  13. 取出版本 0
  14. [root@localhost ~]# ls
  15. anaconda-ks.cfg myproject
  16. [root@localhost ~]# ls -a myproject/
  17. . .. .svn
  18. [root@localhost ~]#

2.2 使用SVN

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

  1. [root@localhost ~]# yum install -y subversion
  2. [root@localhost ~]# hostnamectl set-hostname client
  3. [root@localhost ~]# su -
  4. 上一次登录:四 8 12 15:44:57 CST 2021 192.168.100.1pts/0
  5. [root@client ~]#
  1. //拉取项目
  2. [root@client ~]# svn checkout svn://192.168.100.10/myproject --username=sxb
  3. 认证领域: <svn://192.168.100.10:3690> /data/svnroot/myproject
  4. sxb”的密码:
  5. 注意! 你的密码,对于认证域:
  6. <svn://192.168.100.10:3690> /data/svnroot/myproject
  7. 只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让 Subversion
  8. 可以保存加密后的密码。请参阅文档以获得详细信息。
  9. 你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
  10. 来避免再次出现此警告。
  11. 保存未加密的密码(yes/no)?yes
  12. 取出版本 0
  13. [root@client ~]# ls
  14. anaconda-ks.cfg myproject
  15. [root@client ~]# cd myproject/
  16. [root@client myproject]# ls -al
  17. 总用量 0
  18. drwxr-xr-x. 3 root root 18 8 12 15:49 .
  19. dr-xr-x---. 4 root root 187 8 12 15:49 ..
  20. drwxr-xr-x. 4 root root 75 8 12 15:49 .svn
  21. [root@client myproject]#

image.png

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

image.png

  1. //把文件上传到服务器
  2. [root@client myproject]# svn commit -m "add fstab file"
  3. 正在增加 fstab
  4. 传输文件数据.
  5. 提交后的版本为 1
  6. [root@client myproject]#
  7. //在本地删除
  8. [root@client myproject]# svn delete fstab
  9. D fstab
  10. [root@client myproject]#
  11. 在服务器上提交删除操作
  12. [root@client myproject]# svn commit -m "delete fstab file"
  13. 正在删除 fstab
  14. 提交后的版本为 2
  15. [root@client myproject]#

image.png

  1. 把当前目录下的文件都更新到最新版
  2. [root@client myproject]# svn update
  3. 正在升级 '.':
  4. 版本 2
  5. 查看变更日志
  6. [root@client myproject]# svn log
  7. ------------------------------------------------------------------------
  8. r2 | sxb | 2021-08-12 15:57:16 +0800 (四, 2021-08-12) | 1
  9. delete fstab file
  10. ------------------------------------------------------------------------
  11. r1 | sxb | 2021-08-12 15:55:13 +0800 (四, 2021-08-12) | 1
  12. add fstab file
  13. ------------------------------------------------------------------------
  14. [root@client myproject]#

image.png

2.3 Windows中使用SVN

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

(1)下载TortoiseSVN 并安装

image.png
image.png
image.png
代码管理平台 - 图12
代码管理平台 - 图13
代码管理平台 - 图14
代码管理平台 - 图15
代码管理平台 - 图16
代码管理平台 - 图17
安装完毕后,在任意地方右键查看快捷菜单。发现TortoiseSVN
即表示安装成功。
image.png
下载语言包
image.png
点击软件包安装
image.png
image.png

(2)检出

首先创建一个空文件夹。在空文件夹内右键,选择SVN检出。
image.png
在这个界面,填入版本库地址,选择确定

image.png

此时会弹出一个对话框让你输入账号密码,输入你的账号密码即可。记得勾选保存认证,不然每次操作都会让你输入。

image.png

image.png
可以看到把服务端同步过来了

(3)添加

先重启一下电脑
新添加一个文件,要先点击加入,再点击提交
image.png
image.png
在另外一个客户端更新一下即可看到该文件

  1. [root@client myproject]# ls -a
  2. . .. .svn
  3. [root@client myproject]# svn update
  4. 正在升级 '.':
  5. A 云运维工坊.docx
  6. 更新到版本 3
  7. [root@client myproject]# ls -a
  8. . .. .svn 云运维工坊.docx
  9. [root@client myproject]#

Windows中的SVN会有各种图标提示,如果没有重启即可解决。
image.png
重新提交完成以后,图标即可变为绿色
image.png

(4)删除

进行删除操作以后也要进行提交。
image.png

(5)修改

修改原文件内容,直接提交即可。
image.png
image.png

(6)查看日志

image.png

image.png