作为一名编程人员,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. hadoop的一些命令技巧

    hadoop fs -cat <hdfspath> hadoop fs -cat <hdfspath>|more #more参数可是分页显示文件内容 echo abcd | h ...

  2. IOS Intro - UIWindow UIView and CALayer

    UIWindow.UIView以及CALayer之间的关系2016-05-11 20:46 本站整理 浏览(16) UIWindow1.简介UIWindow是一种特殊的UIView,通常在一个app中 ...

  3. Linux 下 zip 文件解压乱码解决方案,ubuntu16.10亲测可用

    文章来源: https://www.zhihu.com/question/20523036 今天邮件中收到了一个压缩文件,解压后却是乱码,从网上也找了几个方法,目前这个方法还是比较可靠的,如下所示: ...

  4. Java学习第十六天

    1:List的子类(掌握) (1)List的子类特点 ArrayList: 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector: 底层数据结构是数组,查询快,增删慢 线程安全,效率低 ...

  5. js动态控制导航栏样式

    导航栏一般做为母版页,为了使增加用户体验,往往在用户进入某个页面给予导航栏相应的样式,这里可以用js动态添加 <div class="box_left fl"> < ...

  6. Spring框架中stopwatch(秒表)

    StopWatch对应的中文名称为秒表,经常我们对一段代码耗时检测的代码如下: long startTime = System.currentTimeMillis(); // 你的业务代码 long ...

  7. intellijidea课程 intellijidea神器使用技巧 3-3 postfix

    Ctrl shift A ==> postfix completion 调出postfix 方法体中   ==> for   100.fori    ==>enter for循环10 ...

  8. 粗看ES6之数组

    标签: javascript es6 数组新增方法 map(可以理解为是映射,以一定规则修改数组每一项并返回全新数组) reduce(可以理解为是汇总,一堆出来一个) filter(可以理解为过滤,筛 ...

  9. [转]C#利用委托跨线程更新UI数据

    在使用C#的过程中,难免会用到多线程,而用多线程之后,线程如何与界面交互则是一个非常头疼的问题.其实不仅仅是界面,一般情况下,我们往往需要获得线程的一些信息来确定线程的状态.比较好的方式是用委托实现, ...

  10. SpringBoot常用应用程序属性

    参考地址: https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.h ...