什么是SVN

SVN全称:Subversion,是一个开放源代码的版本控制系统

Svn是一种集中式文件版本管理系统。集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。

集中式文件版本控制器:将所有的文件都交由服务器来进行统一的管理。既然是有服务器的,那么就需要联网进行操作了。

为什么要使用SVN

我们写一个项目一般都是一个团队来写,如果我们没有用SVN的话,那么我们只能在团队中互相拷贝对方的代码来完成我们的项目

SVN还有如下的好处:

  • 轻松比较不同版本间的细微差别【修改了代码,就有版本号,还能知道修改前后的数据】
  • 及时了解团队中其他成员的进度【如果没有把代码提交到服务器中,就是做得比较慢了】
  • 广域网共享【连上局域网就可以代码共享了】
  • 协同工作,大大提高团队工作效率

快速了解SVN

配置库

在SVN中有配置库这么一个概念,那它是什么东东呢??

它储存所有的数据,配置库按照文件树形式储存数据

  • 包括目录和文件

任意数量的客户端可以连接到配置库,读写这些文件.并且可以添加读写日志,有权限的用户很方便的看到这些修改

工作副本

我们从上面已经知道了,我们可以从配置库中得到想要的文件。那么我们要把文件从配置库下载下来。这个下载下来的区域就是工作副本

这个工作副本其实就是我们工作的区域,我们对那些文件修改完,就能够再次提交到配置库中了

SVN命令

我们简单来学习几条SVN的命令,SVN有图形界面的功能,因此命令学习也不是必须的。了解一下….


---创建服务器端版本库
svnadmin create 版本库路径 ---启动SVN服务器端
svnserve -d -r 版本库路径 ---在系统服务中注册svn服务器
sc create svn binPath= "C:\Program Files\TortoiseSVN\bin\svnserve.exe --service -r D:\itcast\svnserver\20150118svn" DisplayName= "svn服务" ---删除系统服务中的 服务
sc delete 服务ID

如果启动SVN服务器的时候,不会报错就是正常开启了


分配权限

在我们配置库中找到conf文件夹下的svnserve.conf配置文件。将下面的三行的注释去掉

分配用户

找到conf文件下的passwd,配置用户

常见的子命令

  • import:将未纳入版本控制器的文件或目录提交到版本库中(仅执行一次)
  • checkout: 从版本库标签中出工作副本
  • revert: 将工作副本文件恢复到指定版本
  • update: 将版本库的修改合并到工作副本中
  • commit:把工作副本的修改提交到版本库。

使用SVN

添加数据到SVN

创建配置库,我们可以使用命令行方式,也可以使用UI点击的方式。这里我就直接使用UI的方式了。

随后,开启我们的SVN服务

把一个文件夹放置到配置库中,交由SVN管理

在SVN中查看我们添加的内容:

查看具体的日志

标识得非常清晰:


从SVN导出数据

把SVN的数据导出到用户中。

导出后:这个local文件夹其实就是我们的工作副本!


修改SVN导出后的数据、再添加回SVN

我在工作副本中添加了一个文件

添加到SVN中:

随后,变成了一个蓝色的图标+号,我们提交。


解决冲突

我们可能会出现这样的一个问题:我们的SVN是一个团队正在开发。但是在commit之前,有人就把我正在编辑的文件给修改了。于是当我在提交的时候就出现了冲突【当前的数据不一致,冲突了】

localhost2用户导出了SVN的数据,并且修改了文件:

另一个用户localhost也在修改该文件,但是它没有做updata操作。并不知道该文件已经被修改了。

当他修改完,想要更新到SVN中的时候,发现冲突了。

面对冲突,我们有两种方案:

  • 放弃本次的修改
  • 查看冲突的内容是什么,当查看完再决定要哪个的数据,或者是合并起来。

我们进去冲突修改的页面,决定要的是哪一行的数据

最后修改完,点击保存操作就行了。


关于冲突的建议

  • 修改文件之前,先进行一次update操作
  • 修改完成后,及时commit,不要在本地停留过长时间
  • 在多位团队成员协作时,尽量修改自己撰写的部分,尽量不要修改不属于自己撰写的部分
  • 出现冲突很正常,可以通过前面的方法解决,不要相互覆盖

工作流程图

SVN使用【介绍SVN、快速入门、解决冲突】的更多相关文章

  1. Mybatis第一篇【介绍、快速入门、工作流程】

    什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...

  2. uni-app跨平台框架介绍和快速入门

    前言: 首先今天主要介绍的是一个多平台的前端框架uni-app,关于多平台的前端框架网上有很多成熟的解决方案比如说Taro,React Native,Flutter等这些都是一些非常优秀的前端跨平台的 ...

  3. Shiro 简单介绍和快速入门。

    一.shiro是啥? /* * Shiro ? 安全框架是一个 1.功能强大且易于使用的Java安全框架,可执行身份验证,授权,加密和会话管理,并可用于保护任何应用程序 - 从命令行应用程序,移动应用 ...

  4. linux下svn解决冲突

    1. 使用svn status + 文件路径+文件名 查看文件或目录的状态(该状态可自行进行百度),属性状态为'C'的表示,改文件或目录处于冲突状态 2. 使用svn resolve --accept ...

  5. AngularJS快速入门指南01:导言

    AngularJS使用新的attributes扩展了HTML AngularJS对单页面应用的支持非常好(SPAs) AngularJS非常容易学习 现在就开始学习AngularJS吧! 关于本指南 ...

  6. git快速入门 push/clone/reset/merge/切换分支全都有

    本文介绍git快速入门,从安装/创建init / 发布push/版本回退reset / branch分支切换/合并分支merge 这些基本的操作都有涉及,方便新人快速入手,有需要的朋友mark一下.首 ...

  7. SPRING-BOOT系列之SpringBoot快速入门

    今天 , 正式来介绍SpringBoot快速入门 : 可以去如类似 https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/refer ...

  8. SVN系列学习(一)-SVN的安装与配置

    1.SVN的介绍 SVN是Subversion的简称,是一个开发源代码的版本控制系统,采用了分支管理系统. 文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器.你可 ...

  9. 【Activiti工作流引擎】官方快速入门demo

    Activiti官方快速入门demo 地址: https://www.activiti.org/quick-start 0. 版本 activiti 5.22.0 JDK 1.8 1. 介绍 这个快速 ...

随机推荐

  1. (三)训练HMM模块

    “(二)杂项准备"之后,我们就已经训练了一个hmm模型了——“hmm0”. 接下来,我们将以“hmm0”作为基础,一路训练到“hmm7". 1.从“hmm0"训练到&qu ...

  2. Ubuntu与Centos在登陆安全方面的比较

    Ubuntu在安装时创建的普通用户默认具有sudo权限,默认root没有设置密码,可以通过自建用户来执行sudo passwd 为root设置密码;Centos在安装时创建的普通用户默认没有sudo权 ...

  3. Ubuntu 发行版的 Linux 操作系统

    Ubuntu 发行版的 Linux 操作系统.. ------------------------------------- ------------------------------------- ...

  4. SpringMVC详解(六)------与json交互

    Json(JavaScript Object Notation),它是一种轻量级数据交换格式,格式简单,易于读写,目前使用特别广泛.那么这篇博客我们主要谈谈在 SpringMVC 中,如何对 json ...

  5. Andrew Ng机器学习课程笔记--汇总

    笔记总结,各章节主要内容已总结在标题之中 Andrew Ng机器学习课程笔记–week1(机器学习简介&线性回归模型) Andrew Ng机器学习课程笔记--week2(多元线性回归& ...

  6. 线性代数-矩阵-【3】矩阵加减 C和C++实现

    点击这里可以跳转至 [1]矩阵汇总:http://www.cnblogs.com/HongYi-Liang/p/7287369.html [2]矩阵生成:http://www.cnblogs.com/ ...

  7. STL中map的用法

    map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...

  8. python专题-读取xml文件

    关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码.这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python 来读取xml 文件. 什么是 ...

  9. HDU 6149 Valley Numer II 状压DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6149 题意:中文题目 解法:状压DP,dp[i][j]代表前i个低点,当前高点状态为j的方案数,然后枚 ...

  10. 【RN6752】模拟高清AHD芯片或成为车机新标配

    由于目前车机方案倒车后视目前大多为480P标配,画面噪点多有锯齿成像效果差,成为行业的难言之痛.2012年底,浙江大华宣布发布一项具备完全自主知识产权的安防行业高清视频传输规范--HDCVI--Hig ...