SVN的下载安装(Win10+IDEA2019.1)以及使用

SVN介绍

SVN是Subversion的简称,是一个自由开源的版本控制系统。
Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文
件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节
早期版本控制使用的是CVS,后来SVN替代了CVS,随着android兴起,出现Git版本控制工具,后续会有笔记

问题: 怎样让系统允许用户共享信息,而不会让他们因意外而互相干扰?
复制-修改-合并方案(Subversion默认的模式)

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

锁定-修改-解锁方案

在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。 此模式不适合软件开发这种工作。

SVN架构
SVN架构

Subversion支持Linux和Windows,更多是安装在Linux下。
svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择。
svn存储版本数据也有2种方式:BDB一种事务安全型表类型和FSFS一种不需要数据库的存储系统。
因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。

SVN使用

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

VisualSVN 安装

SUBSERSION官网

然后进入下载界面 选择图示的进行下载
下载界面

然后选择 VisualSVN Server 下载 我的电脑是 64 位的 所以我下载64位的
下载

安装
安装

继续下一步
下一步

继续下一步
下一步

继续下一步 选择第一个
选择第一个

选择结束之后继续下一步
下一步

然后进行安装
安装

然后安装结束
安装结束

安装之后打开
打开SVN

然后点击 右键 创建仓库 可以选择是 FSFS或者是BDB
创建仓库

起名字
起名字

下一步
下一步

进行权限选择 下一步
选择

完成
完成

此时 bos 就创建好了
创建完成

然后可以新建一个用户 可以访问仓库
新建用户

仓库的地址是 最后一步的地址
仓库地址

然后在浏览器输入地址 就可以使用创建的用户登陆
登陆

登陆之后
登陆之后

然后返回客户端 设置访问权限
返回客户端,设置访问权限

安装另外一个图形化工具 TortoiseSVN 还是在之前的地址
图形化工具

然后选择版本安装


选择安装

双击下载好的软件


双击

下一步
下一步

下一步 选择安装路径
选择安装流路径

注意 此处如果不选择 这个x里面的第二个 后面 idea 里面无法安装 svn 的插件


选择第二个

然后安装
安装

结束
结束

安装之后需要重启电脑
使用方法

重启之后创建一个文件夹


创建文件夹

然后进入文件夹 鼠标右键 点击 TortoiseSVN
然后选择 Repo-browser
填写之前创建的 bos 的地址


填写地址进入

然后输入给予权限的账户 登陆
登陆之后

然后右键 选择 SVN Checkout


进入

然后点击Ok 没有红色报错 就是成功了
没有红色报错就是成功了

那么现在这个 呆子 文件夹 就已经被SVN 管理起来了
绿色

然后在 呆子 里面新建一个文件 里面随便写一些东西
创建一个文件

然后右键这个文件 鼠标右键 点击 TortoiseSVN 选择 add (此处不好截图)
添加好之后 可以右键这个文件 选择 commit 会出现以下界面
commit

然后写一点


写一点

然后提交成功
提交成功

然后这个文件就变成绿色了
文件提交之后

此时我新建一个文件 二师兄
新建文件夹 二师兄

此时再去登陆 bos 这个仓库就是 显示如下
登陆

然后 Checkout
checkout

成功
成功

成功

update:更新到历史版本
delete:标记删除操作,本地文件会删除,我们需要进行提交,才能真正从服务器删除
导入与导出
Import将本地资源导入到svn服务器
Export导出项目,和checkout的区别,它不存在.svn隐藏文件
解决冲突
冲突

编辑冲突
编辑冲突

选择使用那些文件内容 选择结束之后先保存一下 然后再 Mark as 一下


选择

此时再去提交就没问题了
此时提交就没有问题了

所以每次操作的时候,先 Update一下 然后再去修改提交

IDEA中使用SVN

前提是我们的电脑上已经安装了TortoiseSVN.
进去 idea File -> settings ->


如图

没有 svn.exe

此时需要重新安装
这个地方点进去选择第二个


选择第二个

然后配置完成
配置完成

这样就安装成功了
在IDEA中的使用

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 本地还没有更新的别人提交的代码

share project
share project

share

share

然后输入权限 账户 就开始了
成功界面


成功界面

此时就有了这些功能
look
如果 idea中使用svn拉取项目出现 Path to certificate 打开File中的setting,找到Version Control 中的Subversion,点击Celar Auth Cache一下即可,然后再重新l拉取就会让你重新输入用户名和密码,就ok了。
checkout
checkout
add commit update
commit update
ignor 忽略需要上传的文件
忽略需要上传的文件
SVN规范
SVN目录规范

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


目录结构

Trunk 主干目录,此目录下的文件为基准文件
Branches 用于开发的分支目录
Tags 用于发布的版本目录
假设有一个项目OA,我们完成了1.0版本,这时就可以打一个tags
后续我们在OA项目上添加一个新的模块(及时通讯),我们就可以开一个分支,又有一个公司需要在我们OA基础上添加财务管理模块,我们又可以打一个分支。
我们后续针对OA的1.0版本在升级,我们不需要原来附加功能,就可以在原来的主干上继续开发,形成OA2.0版本,开发完成后就可以在打一个tags

分支与标记

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


打分支或标记

打分支


打分支

打分支

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

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

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


主干合并到分支

主干合并到分支

主干合并到分支
分支合并到主干 如上述方法一致
到此 SVN 的笔记到此告一段落 之后有需要补充的会继续补充
此处 @我自己 这是QQ聊天的链接 欢迎一起吹🐮学习鸭
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本片内容是转载过来的 作者:前程明亮 出处:http://www.cnblogs.com/0zcl Version...
    马孔多在下雨S阅读 825评论 0 0
  • 文章大纲 一、SVN介绍二、Git介绍三、IDEA使用SVN和Git四、总结五、参考文章 一、SVN介绍 1. S...
    故事爱人c阅读 1,275评论 0 0
  • SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效...
    纪同学说阅读 1,324评论 0 3
  • 为什么要使用SVN? 在程序的编写过程中,每个程序员都会负责开发一个或多个模块,且开发中会生成很多不同的版本, 这...
    shadow雨轩阅读 1,631评论 0 2
  • 命令的使用 1、检出 svn cohttp://路径(目录或文件的全路径)[本地目录全路径] --username...
    小李龍彪阅读 4,554评论 0 9

友情链接更多精彩内容