一,SVN的介绍

1.SVN介绍


SVN全程是一个开放源码的版本控制系统,现在为Apache软件基金会的一个项目,同样是一个丰富的开发者和用户社区的一部分。

SVN是一个开放源代码的版本控制系统,管理随着时间改变数据。这些数据放置在一个中央资料档案库中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧版本,或是浏览文件的变动历史。简单来说就是:用于多人共同开发同一个项目,共用资源的目的。

2.主要作用


1.目录版本控制

SVN实现了一个虚拟的版本控制文件系统,能够依照时间跟踪整个目录的变动。目录与文件都能进行版本控制。

2.真实的版本历史

SVN中可以进行增,删,复制,重命名。无论文件还是目录。所有的新加的文件都从一个新的,干净的版本开始。

3.自动提交

一个提交动作,不是全部更新到了档案库中,就是完全不更新。这允许开发人员以逻辑区间建立提交变动,以防止当部分提交成功时出现的问题。

3.基本概念


Repository(源代码库)︰源代码统一存放的地方
Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份
Commit(提交):当你已经修改了代码,你就需要Commit到repository
Update (更新):当你已经Checkout了一份源代码,Update后就可以和Repository上的源代码同步

4.简单来说


SVN比较类似网盘/备份系统,用来保存/管理写出来的项目。在遇到问题时,可以进行类似回档的操作,进行项目修改。非常方便。SVN有服务端,取用方便一些。

二,SVN的安装

1.关闭防火墙并下载SVN

  1. #systemctl stop firewalld.service //关闭防火墙
  2. #firewall-cmd --state //查看防火墙状态
  3. #systemctl disable firewalld.service //禁止防火墙开机自启
  4. #yum install -y subversion //下载安装SVN

出现 not running 才算是关闭防火墙

SVN的搭建 - 图1

2.创建文件夹,创建SVN空间环境

  1. #mkdir -p /data/svnroot/myproject //创建文件夹
  2. #svnadmin create /data/svnroot/myproject //可以理解为:创建SVN空间环境
  3. #cd !$ //进入上个代码输入的路径
  4. #ls //查看当前路径下的文件

SVN的搭建 - 图2

3.配置SVN空间环境

  1. #cd conf //进入conf文件夹下

SVN的搭建 - 图3

  1. #vim authz //配置authz
  2. i 进行文字插入
  3. :wq 保存退出
  4. :q! 不保存退出

SVN的搭建 - 图4

  1. #vim passwd //配置密码文件

SVN的搭建 - 图5

  1. #vim svnserve.conf //重要的配置文件
  2. #白色的文字就是你们要添加的文字(前面千万不要有空格)
  3. vim查看文件后 / + 字符 回车 可以查找关键字 例如 /auth

SVN的搭建 - 图6

SVN的搭建 - 图7

4.启动服务

  1. #svnserve -d -r /data/svnroot //启动SVN服务

5.创建项目文件

  1. #cd /opt //先进入想要存储项目的位置
  2. #svn checkout svn://192.168.148.155/myproject --username=liao
  3. #自行修改其中的部分参数

SVN的搭建 - 图8

查看创建的文件:

SVN的搭建 - 图9

三,SVN的使用

1.再搭建一台虚拟机,来当做工作机使用。

也就是接下来的操作,都在一台新的虚拟机上!

  1. #yum install -y subversion //下载SVN组件
  2. #cd /opt //需要创建的路径

2.连接SVN服务

svn checkout svn://192.168.148.155/myproject —username=liao
//输入后,登录账户,自动创建myproject文件,即连接成功。

SVN的搭建 - 图10

3.SVN的上传

  1. #cp /etc/passwd /opt/myproject //复制粘贴一个文件到项目文件夹下

SVN的搭建 - 图11

  1. #svn add passwd //增加文件更新
  2. #svn commit -m "add passwd" //提交文件更新

SVN的搭建 - 图12

此时就算是一次SVN项目备份上传。

4.SVN的删除

svn delete passwd //删除文件
#svn commit -m “删除了个文件?”

SVN的搭建 - 图13

5.操作同步

既然增,删操作做了,进行了版本迭代。就去服务端看一看。

  1. #svn update //更新SVN(在服务端和操作端都可使用)

我前面提交版本为 7 更新后这里版本也为7了。
D(delete) 为删除 A(add) 为添加。

SVN的搭建 - 图14

6.查看log

两边都进行svn update后

  1. #svn log //查看日志

SVN的搭建 - 图15