当前位置: 首页 > 图灵资讯 > 技术篇> 【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN

来源:图灵教育
时间:2023-05-25 09:10:48

目录

1、SVN介绍

1.1 SVN基本概念

1.2 SVN架构

2、SVN使用

2.1 VisualSVN安装配置服务器端

2.1.1 VisualSVN下载

2.1.2 VisualSVN安装和创建仓库

2.1.3 VisualSVN创建工程目录

2.1.4 VisualSVN 权限控制

2.2 安装和使用客户端TortoiseSVN

2.2.1 Tortoise SVN下载

2.2.2 Tortoise SVN安装

2.2.3 Tortoise SVN 常用操作

2.2.3.1 浏览仓库

2.2.3.2 checkout

注:检查后会有一个注:.svn隐藏目录

2.2.3.3 add

2.2.3.4 commit

2.2.3.5 update

2.2.3.6 更新到历史版本查看当前日志

2.2.3.7 delete

2.2.3.8 导入与导出

2.2.3.9 当多个用户同时操作相同的文件时,冲突问题可能会发生。

2.3 IDEA下 SVN 配置与使用

2.3.1 IDEA下svn配置配置

2.3.2 IDEA 使用下SVN

2.3.2.1 share project

2.3.2.2 checkout

2.3.2.3 add commit update

2.3.2.4 ignored

2.3.2.5 解决冲突

3. SVN规范

3.1 SVN目录规范

3.2分支和标记

3.2.1.分支或标记规范

3.3 主干与分支或标记合并

3.3.1 主干合并到分支机构


1、SVN介绍

SVN是Subversion的缩写,是一个自由开源的版本控制系统。 Subversion将文件存储在中央版本库中。这个版本库非常像一个普通的文件服务器。不同的是,它可以记录每个文件和目录的修改,从而将数据恢复到以前的版本,并查看数据的更改细节。早期版本控制使用CVS。后来,SVN取代了CVS。随着Android的兴起,Git版本控制工具出现了。我们将在后续学习。

1.1 SVN基本概念

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_客户端

 

问题: 如何让系统允许用户共享信息而不会因事故而相互干扰?复制-修改-合并方案(Subversion默认模式) 在这个模型中,每个客户读取项目配置库,建立一个私人工作副本——版本库中文件和目录的本地映射。用户并行 工作,修改自己的工作副本,最后,每个私人副本合并成最终版本,该系统通常可以协助合并 但最终还是要靠人工来确定正错。

锁定-修改-解锁解锁方案 在这样的模型中,只有一个人可以在一段时间内修改配置库的文件。 这种模式不适合软件开发。

1.2 SVN架构

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_IDEA_02

 

Subversion支持Linux和Windows,更多地安装在Linux下。

svn服务器有两种操作方式:独立服务器和apache操作。这两种方法各有优缺点,用户可以自己选择。

Svn存储版本数据也有两种方式:BDB是一种事务安全表类型,FSFS是一种不需要数据库的存储系统。

FSFS模式更安全,因为BDB模式在服务器中断时可能会锁定数据。

2、SVN使用

本章主要介绍常用的svn工具,如window下svn服务器visualsvn、客户端工具tortoisesvn和idea 使用svn插件 SVN是集中管理代码的版本控制系统,其原理是将所有代码保存在固定位置(仓库),每次从这个位置复制更新代码,编辑;然后将修改后的代码提交到目录。多人合作开发也是如此。多人合作开发也是如此。因此,需要一个类似Oracle或Mysql的服务器来保存和管理库文件(需要保存的代码和其他文件)的服务端——VisualSVN Server。还需要一个用户的操作端来提交更新检出代码,通常使用ideaSvn插件和tortoiseSVN(小乌龟)。 SubVersion 官网:http://subversion.apache.org/

2.1 VisualSVN安装配置服务器端 2.1.1 VisualSVN下载

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_SVN_03

2.1.2 VisualSVN安装和创建仓库

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_服务器_04

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_客户端_05

在开始运行中输入 services.msc

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_SVN_06

这项服务必须打开 在开始运行时搜索visualSVN Server Manager可以打开图形管理界面

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_IDEA_07

2.1.3 VisualSVN创建工程目录

【IntelliJ IDEA】【SVN】SVN详细介绍以及如何在Idea中使用SVN_SVN_08

2.1.4 VisualSVN 权限控制

创建用户

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_服务器_09

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_客户端_10

创建组

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_客户端_11

分配权限

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_客户端_12

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_SVN_13

2.2 安装和使用客户端TortoiseSVN

Tortoisesvn是基于windows系统的svn客户端图形界面.

2.2.1 Tortoise SVN下载

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_svn_14

2.2.2 Tortoise SVN安装2.2.3 Tortoise SVN 常用操作2.2.3.1 浏览仓库

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_SVN_15

在正常情况下,在浏览仓库时,需要输入username和password 我们可以清空svn客户端的缓存

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_SVN_16

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_客户端_17

2.2.3.2 checkout

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_服务器_18

注:检查后会有一个注:.svn隐藏目录2.2.3.3 add

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_IDEA_19

2.2.3.4 commit

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_SVN_21

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_svn_22

2.2.3.5 update

Update,它是一个更新操作,可以将svn服务器上的内容更新到本地

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_服务器_23

2.2.3.6 更新到历史版本 查看当前日志

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_服务器_24

历史版本也可以通过以下方式更新

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_svn_25

2.2.3.7 delete

删除标记操作,删除本地文件,我们需要提交,才能真正从服务器中删除

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_IDEA_26

2.2.3.8 导入与导出

Import将本地资源引入svn服务器 Export导出项目与checkout没有区别.隐藏svn文件

2.2.3.9 冲突问题及解决方案 当多个用户同时操作相同的文件时,可能会发生冲突。

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_客户端_27

如何解决冲突,我们可以使用手动Merge来解决冲突,然后重新committ.

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_服务器_28

HelloWorld.java 它是服务器上的文件与本地文件的合并 HelloWorld.java.mine 修改后的本地文件 HelloWorld.java.r4 修改前的文件 HelloWorld.java.r5 对方修改后的文件

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_服务器_29

 

2.3 IDEA下 SVN 配置与使用2.3.1 IDEA下svn配置配置

想看IDEA下svn配置的更详细说明,可以看看我的另一篇文章。

前提是TortoiseSVN已经安装在我们的电脑上.

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_IDEA_30

这样安装就完成了

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_SVN_31

1.Update Project 更新项目 2.Commit changes 提交项目上的所有变更文件 3.Compare with the Same Repository Version 将当前文件与服务器上文件通版本的内容进行比较。如果当前编辑的文件没有修改,则灰色不能单击。 4.Show history 显示当前文件的历史记录 5.Revert 将修改后的文件恢复到违反修改版本的状态

【IntelliJ IDEA】【SVN】SVN详细介绍和Idea如何使用SVN_客户端_32

1.Local Changes 本地修改的文件将出现在这里 2.Repository 所有Svn仓库提交记录 3.Incoming 其他人提交的代码尚未在本地更新

2.3.2 IDEA 下SVN使用2.3.2.1 share project

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_服务器_33

 

2.3.2.2 checkout

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_服务器_34

2.3.2.3 add commit update

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_客户端_35

2.3.2.4 ignored

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_svn_36

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_svn_37

2.3.2.5 解决冲突

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_服务器_38

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_服务器_39

3. SVN规范 3.1 SVN目录规范

在visualSVN中创建仓库时,可以选择svn目录结构

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_svn_40

Trunk 主要目录,本目录下的文件为基准文件 Branches 用于开发的分支目录 Tags 版本目录用于发布 假设有一个项目OA,我们已经完成了1.0版本,然后我们可以玩一个标签,然后我们在OA项目上添加一个新的模块(及时通信),我们可以打开一个分支,另一家公司需要在我们OA的基础上添加财务管理模块,我们可以做另一个分支。我们后续的OA1.0版本正在升级。我们可以继续在原来的主干上开发,而不需要原来的附加功能,形成OA2.0版本。开发完成后,我们可以玩标签。

3.2分支和标记 3.2.1.分支或标记规范

分支的定义规则: Project name+日期时间+功能点 标签的定义规则 Project name+版本号 版本号定义为三段数字编号 xxx.xxx.xxx 第一:革命性产品升级版 第二:新功能版 第三:修正bug

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_服务器_41

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_客户端_42

标签通常只读,它代表了发布的版本,所以我们不会改变它。

3.3 主干与分支或标记合并3.3.1 主干合并到分支机构

首先保证主干是最新的(update),在分支这边操作

【IntelliJ IDEA】【SVN】SVN详细介绍以及如何在Idea中使用SVN_IDEA_43

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_svn_44

【IntelliJ IDEA】【SVN】SVN详细的介绍和Idea中如何使用SVN_SVN_45

介绍到这里,这篇文章将首先结束。