Java之SVN快速入门,服务器VisualSVN和客户端TortoiseSVN的使用,IDEA下的SVN的配置和使用,SVN的目录规范
发布日期:2021-06-29 15:04:06 浏览次数:3 分类:技术文章

本文共 3535 字,大约阅读时间需要 11 分钟。

SVN

一、SVN的基本概念

SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

在这里插入图片描述
一个软件开发试行后,最关键的问题就是能够有效的实现软件版本系统的控制,而作为版本控制系统的核心任务,能否完成成功的查阅历史操作记录和实现协同开发才是公司研发团队关注的问题。版本控制(Version control)是项目开发与管理的标准做法,能追踪项目从开始到结束的整个过程,常被应用于软件程序开发。对编程人员而言,版本控制技术是团队协作开发的桥梁,有助于多人同步进行大型程序开发。由于在多人协作开发的模式下,每个人都向服务器提交自己的文件,就可能存在着代码被多次修改、替换的风险,但是版本控制能够在每次更新操作后进行相应的记录。一旦发生误操作,开发者能够根据服务器中的版本记录,将项目恢复到出现问题之前的其他版本。因此,借助版本控制技术,软件开发项目可以被分割为若干模块,每个模块并行地进行开发工作,从而有效地提高了整体编程效率。
版本控制技术对文件进行管理主要有两种模式:Lock-Modify-Unlock(锁-修改-解锁)和Copy-Modify-Merge(拷贝-修改-合并)。

1、复制-修改-合并方案(Subversion默认的模式)

在Lock-Modify-Unlock工作模式下,若用户想对某文件进行修改,必须先锁定该文件再进行修改,修改操作完成之后再对其解锁。这种文档管理模式能够有效避免多人对某文件同时进行修改而造成的冲突,但是它减少了用户并发操作。

除此之外,该模式还有一个非常明显的缺点,即如果前面的用户完成修改后,忘了对文件进行解锁操作,则会导致后面想修改此文件的用户将永远处于等待解锁状态。采用这种管理模式的版本控制工具主要有Visual Source Safe(VSS)。

2、锁定-修改-解锁方案

Copy-Modify-Merge工作模式下,当某一用户想修改文件时,可以先将服务器文件update到本地端,然后在本地端对副本进行修改,修改操作完成后,再将副本commit到服务器。

如果在此用户commit之前,原文件已经被其他用户修改并提交过,那么服务器上的版本号与本地端上的版本号不同,二者将产生冲突,服务器将中止提交。

此用户只有将服务器上的新版本update到本地端,将其与自己修改的文件进行合并,才能重新commit到服务器。在实际编程中,文件的合并过程一般需要编程人员共同协商决定。

这种“拷贝-修改-合并”虽然需要花费一定的时间,但却比“锁-修改-解锁”等待的时间短,能够增加操作的并发度,大大提高团队的编程效率。

大多数版本控制系统采用的是第二种方式,如Concurrent Versions System(CVS)和Subversion(SVN),而这其中SVN是最为流行的版本控制软件,许多开源软件都采用了SVN作为源码版本控制服务器。

在SVN版本控制软件的管理下,不管是在局域网还是在Internet上都可以对文件和目录进行管理,它突破了时间与空间的限制,促进了团队协作开发。

3、Subversion架构

在这里插入图片描述

二、Windows服务端VisualSVN的使用

本章节主要介绍常用的svn工具,如window下svn服务器VisualSVN,客户端工具TortoiseSVN以及idea svn插件的使用

SVN是一种集中式管理代码的版本控制系统,原理就是把代码都保存到一个固定的位置(仓库),每次从这个位置拷贝更新代码,进行编辑;再把修改后的代码提交到该目录中。多人协作开发也是如此。因此需要一个类似Oracle或者Mysql的服务器用于保存和管理库文件(要保存的代码等文件)的服务端——VisualSVN Server。还需要一个用户的操作端,用于提交更新检出代码,常用的有idea的Svn插件,以及TortoiseSVN(小乌龟)。

SubVersion官网:

1、服务器端的VisualSVN的安装与配置

(1)VisualSVN的下载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载后双击即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、服务器端的VisualSVN仓库创建以及操作

(1)创建仓库

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建成功
在这里插入图片描述

(2)创建用户

在这里插入图片描述

自定义账号密码
在这里插入图片描述

(3)创建组

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
创建组成功
在这里插入图片描述

(4)分配权限

在这里插入图片描述

指定组可以访问
在这里插入图片描述
在这里插入图片描述
分配权限成功
在这里插入图片描述

(5)复制路径打开浏览器查看

在这里插入图片描述

浏览器访问路径,输入账号密码
在这里插入图片描述
在这里插入图片描述

三、Windows客户端TortoiseSVN的使用

TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。

文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。

你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。

这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。

1、下载和安装

访问官网:

SubVersion官网:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
双击运行
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、操作和使用,添加和提交

创建一个文件夹

在这里插入图片描述
打开文件夹,开启TortoiseSVN浏览仓库
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
同步代码

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
生成一个隐藏文件
在这里插入图片描述

出现下面的图片表示成功

在这里插入图片描述

D:\SVN\JavaTestUser,下创建文件
在这里插入图片描述
编写一段简单的代码
在这里插入图片描述
在这里插入图片描述
已经添加到本地仓库
在这里插入图片描述
将本地的添加到服务器上
在这里插入图片描述
在这里插入图片描述
提交成功
在这里插入图片描述
再次创建一个目录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同步代码成功
在这里插入图片描述

3、恢复到历史版本

1、查看历史版本

在这里插入图片描述
在这里插入图片描述
目前是最新版本
在这里插入图片描述
恢复的第二个版本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、删除

在这里插入图片描述

这个时候只是在本地删除了,服务器端没有删除
在这里插入图片描述
再次新建一个文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
说明JavaTestUser1没有将服务器当中的文件删除

如果想要实际删除需要以下操作

在JavaTestUser1当中
在这里插入图片描述
在这里插入图片描述

5、冲突问题

冲突产生的原因是多个用户同时操作同一个文件所导致

1、在JavaTestUser当中,新建一个文件
在这里插入图片描述
编写一些内容
在这里插入图片描述
添加到本地
在这里插入图片描述
提交到服务器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
提交成功
在这里插入图片描述
在JavaTestUser3当中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改文件内容
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更新成功
在这里插入图片描述
JavaTestUser当中不进行更新,直接修改Hell.java当中的内容直接提交
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
报错
在这里插入图片描述
强制更新
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
正常的两个版本文件
在这里插入图片描述
在这里插入图片描述

6、冲突的解决

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
合并后的代码
在这里插入图片描述
保存代码
在这里插入图片描述

在这里插入图片描述

选择标记已经解决冲突
在这里插入图片描述
提交
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在 JavaTestUser3当中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、IDEA下的SVN的配置和使用

1、IDEA配置SVN

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、将当前项目提交到服务器上

在这里插入图片描述

在这里插入图片描述
创建一个新类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、将项目下载下来

创建一个新的文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载成功
在这里插入图片描述

修改下载后的文件

在这里插入图片描述
在这里插入图片描述
从新提交代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
回到IDEA当中
在这里插入图片描述
在这里插入图片描述
同步成功
在这里插入图片描述
日志信息
在这里插入图片描述

4、在idea当中下载工程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

切换到其他工程
在这里插入图片描述
剪切项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
剪切成功
在这里插入图片描述

5、在idea当中的:lgnored Files

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
后续上传的时候不会上传到服务器

5、解决冲突

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改HelloWorld.java文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在IDEA当中修改
在这里插入图片描述
在这里插入图片描述
报错
在这里插入图片描述
查看差别
在这里插入图片描述
在这里插入图片描述
更新项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择合并方式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再次提交
在这里插入图片描述
在这里插入图片描述
在小郑文件夹当中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、SVN的目录规范

1、指定目录结构

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Trunk主干目录,次目录下的文件为基准文件

Branches用于开发的分支目录
Tags用户发布的版本目录

假设有一个项目OA,我们完成了1.0版本,这时就可以打一个tags

后续我们在OA项目上添加一个新的模块(及时通讯),

我们就可以开一个分支,又有一个公司需要在我们OA基础上添加财务管理模块,我们又可以打一个分支。

我们后续针对OA的1.0版本在升级,

我们不需要原来附加功能,就可以在原来的主干上继续开发,形成OA2.0版本,开发完成后就可以在打一个tags

2、分支与标记

(1)分支或者标记的规范

分支的定义规则:

Project name+日期时间+功能点Tags的定义规则 Project name+版本号版本号定义为三段数字编号xxx,.xxx.xxx

第一个:革命性的产品升级版第二个:新功能版第三个:修正bug

(2)打分支或者标记
a、将当前工程添加带mr的主干

复制路径

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将项目提交到了主干
在这里插入图片描述

b、打分支打标记

分支的定义规则:

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


新建文件小赵

在这里插入图片描述
新建文件夹主干
在这里插入图片描述
复制路径
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打分支
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)主干与分支或标记的合并
a、主干合并到分支

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

修改代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新建分支文件夹
在这里插入图片描述
复制路径
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将主干合并到分支上

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

更新主干

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

转载地址:https://code100.blog.csdn.net/article/details/116210130 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:AdminLTE快速入门和使用(网页模板快速入门使用)
下一篇:Linux下搭建Git服务器详细步骤 + eclipse当中Git的使用,模拟过程,用户上传和同步代码并解决冲突

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月29日 02时51分20秒