作为一名编程人员,SVN经常作为代码、项目的版本控制,殊不知SVN也可作为其他领域的版本控制,例如对文档、音频、视频等 。

SVN可以看成一种文件系统,为了使工作人员提高工作效率,可以进行并行的工作,SVN采用复制-修改-合并的方案而不是锁定-修改-解锁。

SVN中有一个叫全局版本号的概念,如果这个全局版本号会在你每次提交的时候进行+1,也就是说项目中的子目录每次在提交的时候,都会在原有的版本号上进行累加。每一个版本号都会对应一个快照版本

本地的版本通常是混乱的,每个文件的版本号可能都会不一样,这是因为SVN中push和pull是分离的,更新与提交是分离的。

原生的SVN提供了一系列的操作指令,通常的工作中我们都是通过可视化工具进行SVN操作,比如Eclipse SVN插件、Tortoise,而这些工具实际上也只执行SVN提供的命令。

SVN仓库布局可以自己意愿设置,但是也给出了推荐的布局;trunk branches tags

Trunk:主线开发;Branches:分支开发;tags:打包上线;

记得在以前工作中有这样一个场景:

项目最开始有一个标准版,随着厂家客户不断的增多。定制化需求 功能模块的修改越来越多。通常同一个模块在不同厂家中功能流程不一致。当时就不断的创建新的项目,但是开发人员、维护人有限,通常一个人要负责好几个厂家的项目,而且标准版出现的bug在其他的版本也会有,就出现了一个Bug需要修改多次的窘地。

如果利用SVN,可以通过过创建分支的方式缓解这一问题。

可以将标准版作为主线,如果遇到厂家的定制开发,就需要创建分支。这样标准版的bug修改一次,通过合并到分支的方式来解决这个一问题。

--------------------------------------------------SVN仓库布局------------------------------------------------------

Trunk:主干;branches:分支,tags:标签,里程碑。

Trunk:通常为项目正式的版本,分支中的代码经过测试后 都需要 合回到主干中。当有好多分支,合并到主干的时候,这个主干有点像河流汇总的意思,最终形成了黄河长江即 最终版本。

Branches:应该是我们日常开发中,接触最多的文件,通常会分为好多种,修改Bug中的分支,新功能分支,新技术分支等,当功能开发好后,经过测试,测试通过即可合并到主干中去。

Tags:最大的特点是只可以update,不可以commit。当我们需要到生产环境发布正式版的时候,我们会从主干中拿到最新的代码放到tag中,然后进行打包,发布。

Subversion简介的更多相关文章

  1. Subversion简介(一)

    Subversion 就是一款实现版本控制的工具软件,通常也称为版本控制器,简称 SVN. Subversion 是 Apache 软件基金会组织下的一个项目. SVN 的工作原理:采取客户端/服务器 ...

  2. Subversion how[Reprint]

    1.   Subversion简介 Subversion(简称SVN)是一款功能强大的开源版本控制工具,支持Linux和Windows平台. SVN可以有两个访问方式,一种是独立服务器直接访问,即利用 ...

  3. CentOS 6.3 + Subversion + Usvn 搭建版本管理服务器

    一. Subversion 简介 Subversion是一个自由,开源的版本控制系统.在Subversion管理下,文件和目录可以超越时空.Subversion将文件存放在中心版本库里.这个版本库很像 ...

  4. Linux运维之道(大量经典案例、问题分析,运维案头书,红帽推荐)

    Linux运维之道(大量经典案例.问题分析,运维案头书,红帽推荐) 丁明一 编   ISBN 978-7-121-21877-4 2014年1月出版 定价:69.00元 448页 16开 编辑推荐 1 ...

  5. Eclipse下使用SVN版本控制

    作者:朱先忠编译 转自天极[url]http://dev.yesky.com/356/2578856.shtml[/url] 简单介绍一些基本操作1.同步在Eclipse下,右击你要同步的工程-tea ...

  6. [转]将已有项目代码加入svn版本控制

    原文链接:https://blog.csdn.net/aaroun/article/details/79074178 将已有项目代码加入svn版本控制 - TortoiseSVN入门篇Windows下 ...

  7. SVN将项目代码加入svn版本控制

    将已有项目代码加入svn版本控制 - TortoiseSVN入门篇Windows下SVN实用教程(以TortoiseSVN作为客户端(client)) 翻译: Bravo Young Next: 版本 ...

  8. Subversion Server Edge用户权限设置简介

    Subversion Server Edge用户权限可分为两种,一种为按用户权限,一种为按组权限设置 1.按用户设置权限 [codeLibrary:/] //对整个代码库 *=r     //所有用户 ...

  9. 版本管理工具svn简介

    svn简介 SVN是一种C/S架构的版本管理软件 , 能够帮助我们保存开发过程中各个文件的所有历史版本, 你因此可以方便的找回软件的任何一个历史状态., 日常开发中经常用到. 安装使用 1.  在 u ...

随机推荐

  1. hybird app 工具选型

    目前hybird app工具众多,如何选择?哪个坑少点呢? 下面来分析一下: 1开发工具都开源.基于Eclipse的有:apicloud,WeX5 2热门指数.下面的百度的搜索结果数,代表不了什么,至 ...

  2. C# 反射 Type.GetFields 方法

    using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Reflecti ...

  3. 夜神模拟器连不上adb的解决办法

    解决办法: 1.任务管理器里看下,adb.exe以及nox_adb.exe这2个进程有没有在运行?有的话就结束掉 2.找到开发环境的SDK的目录和夜神模拟器的目录,将SDK\platform-tool ...

  4. mysql中操作符LIKE与通配符%的使用

    mysql中通配符%用来通配其他字符,操作符LIKE用来查询字段中存在相同的字符 SELECT t.userId,t.cellphone,t.idNo,t.* FROM t_person t WHER ...

  5. 【转】Android事件分发机制完全解析,带你从源码的角度彻底理解(下)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9153761 记得在前面的文章中,我带大家一起从源码的角度分析了Android中Vi ...

  6. 使用dtd--声明实体

    1.预定义实体 符号 实体引用 < < > > & & ' &apos; " " 2.自定义实体 <!ENTITY addre ...

  7. Oracle Functions转成Ms-Sql procedure

    最近公司的一些Oracle项目要转到Ms_sql上,在把Oracle Functions改成MS-Sql的Procedure时,遇到了翻译的问题. 罗列出这些问题: 一.Oracle 基本类型 ora ...

  8. 自定义滑块Vue组件

    <div class="audio"> <audio id="audio" ref="audio" src="h ...

  9. <Android 基础(十)> FloatingActionButton

    介绍 Source Code中的介绍如下: Floating action buttons are used for a special type of promoted action. They a ...

  10. python-daemon

    http://legacy.python.org/dev/peps/pep-3143/#python-daemon install yum install python-daemon example ...