百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

版本控制系统——SVN相关知识

mhr18 2025-01-08 15:32 27 浏览 0 评论

一、SVN概述

1.1 SVN介绍

SVN是Subversion的简称,是一个自由开源的版本控制系统。 Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节。


1.2 SVN基本概念


1.3 SVN模式

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

在这种模型里,每一个客户读取项目配置库建立一个私有工作副本——版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。


1.4 SVN架构

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

svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择。

svn存储版本数据也有2种方式:BDB一种事务安全型表类型和FSFS一种不需要数据库的存储系统。 因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。


二、SVN使用

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


2.2 服务器端VisualSVN安装与配置

2.2.1 VisualSVN下载


2.2.2 VisualSVN安装与创建仓库

在开始运行中录入 services.msc开启服务。

服务开启后,在开始运行中查找visualSVN Server Manager就可以打开图形化管理界面:


2.2.3 VisualSVN创建工程目录


2.2.4 VisualSVN 权限控制

创建用户


创建组


分配权限


2.3 客户端TortoiseSVN安装与使用

TortoiseSVN是一个基于windows系统的svn客户端图形化界面

2.3.1 Tortoise SVN下载


2.3.2 Tortoise SVN安装


2.3.3 Tortoise SVN 常用操作

2.3.3.1 浏览仓库

正常情况下,在浏览仓库时会要求录入username 与password


2.3.3.2 checkout

导出svn服务器上的项目

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


2.3.3.3 add


2.3.3.4 commit


2.3.3.5 update

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


2.3.3.6 更新到历史版本


2.3.3.7 delete

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


2.3.3.8 导入与导出

Import将本地资源导入到svn服务器

Export导出项目,和checkout的区别在于它不存在.svn隐藏文件


2.3.3.9 冲突问题与解决

多个用户同时操作同一个文件时,就可能产生冲突情况。

这个冲突产生后如何解决,我们可以采用手动Merge,解决冲突后,重新commit

HelloWorld.java 它是服务器上的文件与本地文件合并

HelloWorld.java.mine 本地修改后的文件

HelloWorld.java.r4 修改前的文件

HelloWorld.java.r5 对方修改后的文件


2.4 IDEA下 SVN 配置与使用

2.4.1 IDEA下svn配置,前提是安装了TortoiseSVN


安装完成后,右上角的图标显示:

1.Update Project 更新项目

2.Commit changes 提交项目上所有变化文件

3.Compare with the Same Repository Version 当前文件与服务器上该文件通版本的内容进行比较。如果当前编辑的文件没有修改,则是灰色不可点击。

4.Show history 显示当前文件的历史记录

5.Revert 还原当前被修改的文件到未被修改的版本状态下


下方的日志信息显示:

1.Local Changes 本地修改过的文件都会出现在这里

2.Repository svn仓库所有提交记录

3.Incoming 本地还没有更新的别人提交的代码


2.4.2 IDEA 下SVN使用

2.4.2.1 share project


2.4.2.2 checkout

2.4.2.3 add commit update


2.4.2.4 ignor:选择上传时忽略的文件或文件夹


2.4.2.5 解决冲突


三、 SVN规范

3.1 SVN目录规范


3.2 分支与标记

3.2.1.分支或标记规范

分支的定义规则:Project name+日期时间+功能点

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


3.2.2 打分支或标记

Tags一般是只读,它代表的是发布的版本,所以我们不要进行改变。


3.3 主干与分支或标记的合并

3.3.1 主干合并到分支

相关推荐

一文带您了解数据库的行列之争:行式与列式存储的异同

数据库存储格式是数据库管理系统中一个至关重要的方面,它直接影响到数据的组织和检索效率。在数据库中,有两种主要的存储格式,即行式存储和列式存储。这两者采用截然不同的方法来组织和存储数据,各自具有一系列优...

NL2SQL(三)开源项目怎么选:talk is cheap, show me the code!

老规矩,先看效果下面的demo来自试用的SuperSonic,将会在下面详细介绍:大模型时代Text-to-SQL特点随着基于LLM技术的发展,RAG/AIAgent/Fine...

JDK25长期支持版九月降临:18项王炸功能全解析

Java要放大招啦!9月份推出的JDK25长期支持版已经锁定18个超能力,从稳定值到结构化并发,还有Linux系统下的"预知未来"性能分析!下面我用打游戏的术语给你们掰扯明白:1、飞...

OceanBase 推出单机版 高度兼容MySQL和Oracle

【环球网科技综合报道】3月27日,独立数据库厂商OceanBase正式发布单机版产品。据悉,这一产品基于自主研发的单机分布式一体化架构设计,具备极简数据库架构和高度兼容性,为中小规模业务提供兼具性能与...

黄远邦:应对7月1日闰秒对Oracle数据库影响

由于今年7月1日全世界会多出一秒,这可能对时间敏感的IT系统造成较大影响。中亦科技数据库团队对此问题做了深入的研究,并对用户系统提出了相应的解决方法及建议。中亦科技数据库产品总监黄远邦认为,闰秒调整会...

MySQL数据库密码忘记了,怎么办?(mysql 数据库密码)

#头条创作挑战赛#MySQL数据库密码忘记了且没有其他可以修改账号密码的账户时怎么办呢?登录MySQL,密码输入错误/*密码错误,报如下错误*/[root@TESTDB~]#mysql-u...

Chinese AI Talent in Spotlight as Nvidia and Meta Escalate Talent War

OntherightisBanghuaZhu,ChiefResearchScientistatNVIDIATMTPOST--SiliconValley’stoptech...

用Cursor开启JAVA+AI生涯(javascirpt怎么开启)

Cursor是基于VSCode开发的一款编辑器,支持多种语言的开发编辑。与传统的开发工具相比,它有多种优势:与AI无缝集成,响应速度快,占用内存小。但很多同学在"起步"过程中遇到了...

毕业十年了,自从做了开发用了很多软件,但距离写开发工具还很远

办公系统类:办公软件Word、Excel、PowerPoint三大必备技能+腾讯/金山在线文档解压缩操作:7-zip/winrar文件文本处理:Notepad++(文本编辑器正则表达式超级好...

盘点Java中最没用的知识⑤:这3个老古董你还在代码里“考古”?

一、Stack类:“继承Vector”的历史bug,为何成了性能拖油瓶?你是不是在学Java集合时,老师说过“栈结构用Stack类”?是不是在老代码里见过"newStack<>(...

Gemini 2.5 Pro 0506发布,编程最强大模型, 碾压 Claude3.7 sonnent

一、Gemini2.5Pro(I/Oedition)发布1、为何叫I/Oedition?谷歌史上最强编程模型Gemini2.5Pro(I/Oedition)发布,具体型号是Gemin...

如何让无聊变得有趣(附本人大量美图)

文/图:金冬成在这条长300公里的公路上,我已经来回往返了无数次。3小时车程,一个人,想想都是多么无聊的一件事。其实,人生道路上,类似这种无聊的事情有很多很多。无聊的事情、枯燥的工作,往往让我们容易失...

Oracle 推出 Java 24,增强 AI 支持和后量子加密

导读:Oracle宣布正式发布Java24,该语言增加了几个新功能,例如StreamGatherersAPI和Class-FileAPI的可用性,以及专门为AI推理和量子安全设计...

公司ERP突然变慢?“索引重建”这颗“药”可不能随便吃!

各位老板、IT小哥、财务小姐姐,有没有遇到过公司ERP系统突然卡顿得像“老爷车”,点个按钮半天没反应,急得直跺脚?这时候,可能有人会跳出来说:“我知道,重建一下数据库索引就好了!”听起来像个“神操作”...

基于Java实现,支持在线发布API接口读取数据库,有哪些工具?

基于java实现,不需要编辑就能发布api接口的,有哪些工具、平台?还能一键发布、快速授权和开放提供给第三方请求调用接口的解决方案。架构方案设计:以下是一些基于Java实现的无需编辑或只需少量编辑...

取消回复欢迎 发表评论: