SVN教程

1、SVN常见操作

  1. 发布项目(share project)

    • 项目组长将本机项目第一次发布到中央仓库中
  2. 下载项目(检出项目check out)
    • 组员将中央仓库中的项目第一次下载到本地
  3. 提交(commit)
    • 将本地修改的内容同步到服务器中(本地 => 服务器)
    • 编写完一个小功能之后、每天下班前一定要及时提交
  4. 更新(update)
    • 将服务器中最新的代码同步到本地(服务器=>本地)
    • 编写功能之前,每天上班前一定要及时更新

2、SVN安装

2.1 svn 服务端

  1. 下载地址:visualsvn

  1. 双击下载的安装程序

  2. 如图步骤安装

2.2 svn 客户端(小乌龟)

  1. 下载地址:TortoiseSVN

  1. 双击安装程序

  2. 安装步骤如图所示

3、配置

说明:服务器端需要提供IP,端口,账号,密码供客户端使用。

3.1 配置ip和端口

Server name的值可以设置为:

  1. 127.0.0.1(只能本地自己访问)
  2. 电脑用户名(只能本地自己访问)
  3. 电脑ip(能够通过ip访问的用户均可)

Server Port使用默认值即可

3.2 新建用户

3.3 新建分组

4、SVN的使用

4.1 新建版本库

  1. 选择Repositories右键,选择Create New Repostiory

  2. 使用默认设置,选择下一步

  3. 设置仓库的名字

  4. 创建仓库

  5. 设置用户访问权限

  6. 创建成功

4.2 导入项目到svn(import)

  1. 复制仓库地址

  2. 找到自己的项目右键,选择TorstoiseSVN,选择导入

  3. 选择上传的位置

  4. 项目导入

  5. 查看是否导入成

4.3 检索项目(check out)

  1. 复制远程仓库中项目的地址

  2. 在本地任意位置检出

  3. 导出项目到本地

  4. 检出成功

4.4 提交代码 (commit)

  1. 选择修改好的文件邮件,选择TortoiseSVN,选择加入

  2. 提交项目

  3. 查看是否更新成功

4.5 更新代码(update)

  1. 在项目任意位置邮件,更新

  2. 查看更新信息

4.6 版本冲突问题

4.6.1 版本冲突的原因

有A、b两位用户同时检索到项目的版本1,然后B先修改了文件并且提交了,然后A提交文件时会发现修改的文件与B的文件有冲突的地方,系统不知道该如何将A提交的文件更新到仓库的项目中。

4.6.2 版本冲突的现象

冲突发生时, subversion会在当前工作目录中保存所有的目标文件版本[上次更新版本、当前获取的版本(即别人提交的版本)、自己更新的版本、目标文件]。

假设文件名是 kingtuns.txt

对应的文件名分别是

  • kingtuns.txt.r101 上次更新版本
  • kingtuns.txt.r102 当前获取的版本
  • kingtuns.txt.mine 自己更新的版本
  • kingtuns.txt 目标文件

同时在目标文件中标记来自不同用户的更改。

4.6.3 场景

  1. A用户检出版本5的项目

  2. B用户检出版本5的项目

  3. A用户修改hello.txt文件并提交

    此时仓库中的版本已经变为6

  4. B用户修改项目并提交

    B用户将文件提交至服务器时,提示版本过期:首先应该从版本库更新版本,然后去解决冲突,冲突解决后要执行 svn resolved(解决),然后在签入到版本库。在冲突解决之后,需要使用svn resolved(解决)来告诉subversion冲突解决,这样才能提交更新

4.6.4 解决冲突的三种方法

  1. 放弃自己的更新,使用 svn revert(回滚),然后提交。在这种方式下不需要使用svn resolved(解决)
  2. 放弃自己的更新,使用别人的更新。使用最新获取的版本覆盖目标文件,执行 resolved filename并提交(选择文件一右键一解决)
  3. 手动解决:冲突发生时,通过和其他用户沟通之后,手动更新目标文件。然后执行 resolved filename来解除冲突,最后提交。

4.6.5 解决冲突

  1. 在冲突的文件上右键,选择TortoiseSVN,编辑冲突

  2. 手动处理冲突文件

  3. 提交文件

4.6.6 如何降低冲突解决的复杂度

  1. 当文档编辑完成后,尽快提交,频繁的提交/更新可以降低在冲突发生的概率,以及发生时解决冲突的复杂度
  2. 在提交时,写上明确的 message,方便以后查找用户更新的原因,毕竟随着时间的推移,对当初更新的原因有可能会遗忘
  3. 养成良好的使用习惯每天早上打开后,首先要从版本库获取最新版本。每天下班前必须将已经编辑过的文档都提交到版本库

5. IDEA中使用SVN

5.1 配置SVN环境

  1. 进入idea,选择File => New projects Setup => setting for New Project…

  2. 配置svn

5.2 检索项目

  1. 选择VCS,选择Get from Version Control…

  2. Version control选择Subversion,添加仓库中连接的地址

  3. 选择刚刚添加的连接,选择CHECK OUT

  4. 设置项目根路径

  5. 选择项目子路径

  6. 选择1.8 format

  7. 选择在当前窗口打开

  8. 选择ADD

  9. 成功后新增svn按钮

5.3 提交代码

  1. 修改完代码后,点击绿色对钩提交

  2. 添加注释信息,然后COMMIT

  3. 进度条显示提交进度

5.4 更新代码

  1. 选择蓝色箭头更新代码

  2. 默认即可,选择ok

  3. 更新成功

5.5 导入项目

  1. 选择VCS, 选择Import into Subversion…

  2. 配置远程仓库地址

  3. 选择刚刚添加的url,选择import

  4. 选择自己要上传的项目,点击ok

  5. 添加注释,选择ok

  6. 上传成功

5.6 版本冲突问题

  1. 如4.6中相同情况参数冲突

  2. 此时点击更新操作

  3. 手动处理异常

  4. 处理好冲突后选择apply

2021最新最细致的IDEA集成SVN工具的使用 (入门到精通)相关推荐

  1. 【2021最新】大佬花了半个月整理出来的Java后端学习路线,果断收藏了!

    要成为一个符合 BAT.TMD 大厂要求的后端技术工程师,到底需要学哪些技术?后端技术学习路线是怎样的? 学习路线 话不多说,直接上刚画完的后端技术学习路线思维导图框架: ​ 图中的每一个节点都可以点 ...

  2. 2021最新Spring Security知识梳理

    2021最新Spring Security知识梳理 一.SpringSecurity 框架简介 Spring 是非常流行和成功的 Java 应用开发框架,Spring Security 正是 Spri ...

  3. 2021最新Android开发者学习路线,已整理成文档

    前情 首先介绍一下自己的情况吧,由于当年高中年少轻狂,不努力,差二本线16分.我自己也没有意识到学历的区别,最终听了家里的安排上了一个专科,电气专业. 现在想想都很后悔,当年为什么没有自己的主见,如果 ...

  4. 【Java开发】2021最新最全的Java开发工程师学习路线

    2021最新最全的Java开发学习路线 阶段一 (夯实基础) 一.Java基础语法 二.Java面向对象编程 三.Java核心类库 四.XML与JSON 五.算法与数据结构 六.数据库 七.JDBC技 ...

  5. 综述|2021最新关于点云配准的全面介绍

    标题:A comprehensive survey on point cloud registration 作者:Xiaoshui Huang[1], Guofeng Mei[2], Jian Zha ...

  6. 2021最新Java面经整理 | 数据库篇(一)MySQL

    2021最新Java面经整理 | 数据库篇(一)MySQL 目录 一.基础 1.数据库范式 2.视图 3.游标 4.存储过程与函数 5.触发器 6.常用问题 二.事务 1.事务四大特性(ACID) 2 ...

  7. SVN使用 IDEA集成SVN SVN简介 SVN使用详解 SVN学习之路

    文章目录 SVN介绍与使用 一.SVN引入 1. SVM服务器搭建 2. 需要了解的关键词 3. 如何让系统共享信息,并且不互相干扰. 4. SVN架构 二. SVN的操作 1. 安装tortoise ...

  8. 2021最新 SpringBoot面试题精选(附刷题小程序)

    推荐使用小程序阅读 为了能让您更加方便的阅读 本文所有的面试题目均已整理至小程序<面试手册> 可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验! 文章目录 推荐使用小程序阅读 1. ...

  9. Java面试题汇总及答案2021最新(序列化含答案)

    Java面试题汇总及答案2021最新(序列化含答案) 为大家整理了2021最新的Java面试题及答案下载,这套Java面试题总汇已经汇总了Java基础面试到高级Java面试题,几乎涵盖了作为一个Jav ...

  10. Java面试题汇总及答案2021最新(ioNio)

    Java面试题汇总及答案2021最新(io&Nio) 最近给大家整理了一批Java关于io和nio的面试题一共15题,是20201最新时间整理的,并且都含答案打包下载. 适宜阅读人群 需要面试 ...

最新文章

  1. 疑问:c++中的memset
  2. python modbus tk 库_如何使用modbus tk rtu(python)设置简单的从机和主机
  3. SwiftSuspenders 1.6 浅出深入 深入 2
  4. js小记 function 的 length 属性
  5. c++面试题【转】 面经
  6. 排序算法大集锦_合并排序_1(分治思想)
  7. 自定义ViewGroup(1)
  8. 电脑频繁断网怎么回事_家里网络间歇性断网什么原因 家里网络间歇性断网怎么解决【介绍】...
  9. java记录代码执行位置_记录执行的java代码的行号
  10. Springboot项目部署到外部Tomcat
  11. 威海二职工业机器人专业_工业机器人专业主要学什么?
  12. 简单版WAF代码学习
  13. 如何csdn复制他人博客文章到自己博客下?
  14. c# socket 服务器端如何判断客户端掉线
  15. 凝视联通4G和4G+战略落地半年报,从数据亮点中找出路
  16. 怎么彻底清除计算机病毒,Win7旗舰版系统如何才能彻底删除电脑病毒
  17. 中国大学 MOOC Android 性能优化:冷启动优化总结
  18. 软件开发的那些坑,你跳了没?这篇文章价值千万(一)
  19. 扩展显示器失败:“显示信号输入超出范围“问题解决方案
  20. 公开密钥密码体制(C语言实现RSA加密算法)

热门文章

  1. 【Verilog HDL】4选1数据选择器
  2. 员工自动离职可以申请经济补偿吗
  3. 用PARL训练mini-alphaGO
  4. 晶振封装与频率对照表
  5. java actionsupport_【JAVA学习】struts2 中 Actionsupport 的作用
  6. 跳过密码卸载OfficeScan
  7. 2022年计算机软件水平考试信息处理技术员练习题及答案
  8. JanusGraph学习手册
  9. 如何优雅地压缩一张图片
  10. 异常和Log4j日志