1. 什么是SVN?

版本控制:

它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节!

image-20210419210536116

Subversion(简称SVN)是一个自由开源的版本控制系统。在Subversion管理下,文件和目录可以超越时空。

常用的版本控制工具:

image-20210419210641313

http://subversion.apache.org/

image-20210419210822304

SVN的优势

统一的版本号

Subversion下,任何一次提交都会对所有文件增加到同一个新版本号,即使是提交并不涉及的文件,版本号相同的文件构成软件的一个版本。

原子提交

一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。

多级管理系统

超级管理员:对所有配置库具有完全权限。

目录管理员:目录管理员可对指定的目录/SVN库进行权限管理。

普通用户:可以查看用户名、查看权限设置、修改自己密码。

一致的数据操作

Subversion用一个二进制差异算法描述文件的变化,对于文本(可读)和二进制(不可读)文件其操作方式是一致的。这两种类型的文件压缩存储在版本库中,而差异信息则在网络上双向传递。

简单、易操作

SVN对中文支持好,操作简单,使用没有难度,使用界面统一,功能完善,操作方便。

2. 搭建VisualSVN Server服务器

集中式代码管理的核心是SVN服务器:

image-20210419211207135

SVN服务端:Subversion和VisualSVN Server

因为如果直接使用Subversion,那么在Windows系统上,要想让它随系统启动,就要封装SVN Server为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式htp协议访问,一般还要安装配置Apache,如果是新手,岂不是很头痛?

而VisualSVN Serve集成了Subversion和Apache,省去了以上所有的麻烦。

下载地址:

https://www.visualsvn.com/server/

image-20210419211432114

安装图解:

  • 下载

image-20210419211653209

  • 双击安装:

image-20210419212312181

image-20210419212322379

image-20210419212334607

  • 设置仓库地址、端口

image-20210419212444508

image-20210419212457472

  • 安装完成

image-20210419212519229

3. SVN服务器创建仓库与用户

  • VisualSVN Server Manager 主界面

image-20210419212608235

3.1 创建仓库

image-20210419213725822

image-20210419213811827

image-20210419213951759

  • 这里选择仓库类型

    • 类型1:空仓库
    • image-20210419214537454
    • 类型2:主分支-分支-标签
    • image-20210419214448404
  • 访问权限设置

    • image-20210419214055926

image-20210419214107007

  • 创建完成

image-20210419214737024

3.2 SVN标准目录结构

  • trunk是主分支,是日常开发进行的地方。
  • branches是分支。一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。又比如为不同用户客制化的版本,也可以放在分支中进行开发。
  • tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。

3.3 创建用户

创建user1、user2两个用户

  • 创建user1(密码123456

image-20210419215113106

image-20210419215216577

  • 创建user2(密码123456

image-20210419215248025

  • 重设密码

image-20210419215347634

3.4 修改仓库权限

  • 右键仓库,属性

image-20210419215506975

image-20210419215649905

4. 安装TortoiseSVN客户端

image-20210419215849713

TortoiseSVN是Subversion版本控制系统的一个优秀的免费开源客户端。

官方网址: Home · TortoiseSVN

image-20210419220012898

下载地址:

Downloads · TortoiseSVN

image-20210419220106524

安装图解:

image-20210419220214442

一路next:

image-20210419220241042

安装成功后、右键单击、可出现SVN菜单:

image-20210419220328009

汉化:

image-20210419220418753

5. 使用Checkout检出仓库代码

查看仓库地址:

image-20210419220631139

右键 -> SVN Checkout…

image-20210419220537832

查看本机IP:

image-20210419220724682

检出rep1仓库:

image-20210419220811284

接受证书:

image-20210419220831558

输入用户名和密码,并保存认证:

image-20210419220854838

成功检出到本地:

image-20210419220923167

image-20210419220911653

image-20210419221400306

6. 添加文件、修改文件

6.1 添加文件

在rep1文件夹下新建1.txt并保存

image-20210419221548363

右键 -> 增加 :将文件加入版本管理

image-20210419221727699

image-20210419221734922

image-20210419221807231

增加成功后,文件上面多了一个 + 号

image-20210419221832005

右键 -> 提交,写上备注

image-20210419221940374

image-20210419221957030

image-20210419222004286

提交成功后,文件上多了一个 “✓” 号

image-20210419222043018

6.2 查看日志

TortoiseSVN -> 显示日志

image-20210419222141240

可以看到新增日志:

image-20210419222207836

服务器上可以看到文件:

image-20210419222359527

在新的地方更新目录:

image-20210419222543239

image-20210419222558267

6.3 修改文件

修改文件并保存,文件图标变为红色感叹号

image-20210419222714195

提交修改:

image-20210419222738407

填写备注:

image-20210419222807394

提交完成:

image-20210419222838115

查看日志

image-20210419222856872

双击日志,可以显示出和上个版本的区别:

image-20210419223211471

image-20210419223225770

去查看另一个仓库,发现没有更新

image-20210419222937212

更新:

image-20210419222959071

打开,发现已经同步:

image-20210419223019778

7. 版本回滚

在rep1文件夹下打开1.txt,修改如下,此刻文件出现“!”号

image-20210419223405121

如果你没有提交,那么直接删除此文件,然后 更新 即可, 发现文件回复了,并且为“✓”号。

image-20210419223525078

如果你已经提交了,且有日志记录

image-20210419223732823

那么就使用回滚

image-20210419223906531

1.查看版本 2.选择版本 3.确定

image-20210419223952662

image-20210419224006935

注意:再次更新,会恢复到最新,提交的记录无法删除!!!

image-20210419224329969

这样才能表示历史记录可追溯:

image-20210419224407512

8. 删除文件

新建2.txt,并提交

image-20210419224541227

TortoiseSVN -> 删除,此时文件会消失

image-20210419224642459

提交删除:

image-20210419224810215

image-20210419224829662

9. 解决冲突

9.1 产生冲突的情况?

当开发人员A和开发人员B从版本库同时检出文档1.txt,而A和B同事修改了1.txt的同一个地方,先提交的不会有任何问题,后提交的一方会在提交的时候产生冲突。

image-20210419225206583

A修改并提交:

image-20210419225303448

B 修改并提交:

image-20210419225338567

image-20210419225400395

image-20210419225419546

image-20210419225447737

image-20210419225501186

冲突会导致提交失败,并自动返回:

image-20210419225546595

9.2 解决冲突

产生冲突的目录编程这样了,文件出现黄色的感叹号:

image-20210419225722502

右键 -> TortoiseSVN -> 编辑冲突

image-20210419225825571

image-20210419225834901

先删除掉问号:

image-20210419230019102

拷贝到合并后的文件:

image-20210419230100514

保存:

image-20210419230129874

黄色的感叹号消失:

image-20210419230154718

文件修改已经合并:

image-20210419230214499

重新提交:

image-20210419230253487

10. 创建分支

什么是分支?

在版本控制的系统中,我们经常需要对开发周期中的单独生命线作单独的修改,这条单独的开发生命线就可以称为Branches即分支。分支经常用于添加新的功能以及产品发布后的bug修复等,这样可以不影响主要的产品开发线以及避免编译错误等。当我们添加的新功能完成后可以将其合并到主干中。

10.1 创建分支

TortoiseSVN -> 分支/标记

image-20210419230458187

创建分支:

  • 1.源路径
  • 2.分支路径
  • 3.备注
  • 4.版本

image-20210419230805724

image-20210419230728123

创建成功:

image-20210419230828622

服务器上也出现了:

image-20210419230902254

在分支中添加文件:

image-20210419230932759

10.2 合并分支

TortoiseSVN -> 合并

image-20210419231033738

image-20210419231153992

选择合并源:

image-20210419231233407

image-20210419231245053

合并完成:

image-20210419231302691

文件被合并到了trunk中

image-20210419231324182

提交分支点合并到主分支

image-20210419231451586

image-20210419231458452

查看日志:

image-20210419231528112

GO GO GO~

感谢大家,关注点一波~

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐