作为一名编程人员,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. Linux 系统 文件锁 fcntl函数详解

    #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd); int fcntl(int fd, int ...

  2. 使用 Charles 获取 https 的数据

    1. 配置 Charles 根证书 首先打开 Charles: 然后如下图操作: 之后会弹出钥匙串,如果不弹出,请自行打开钥匙串,如下图: 系统默认是不信任 Charles 的证书的,此时对证书右键, ...

  3. 嵌入式 C 语言编程总结

    嵌入式 C 语言编程总结 目录: 全局变量 1.全局变量 在纯 C 语言(Pure C)开发的嵌入式程序中,需要在多处用到同一个变量,需要注意几点: 不要在头文件中对变量进行定义 头文件中变量的声明添 ...

  4. HDU 5592——ZYB's Premutation——————【线段树单点更新、单点查询】

    ZYB's Premutation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Othe ...

  5. jQuery的实现编码,解决特殊字符 <script> "

    function htmlEncode(value){ if (value) { return jQuery('<div />').text(value).html(); } else { ...

  6. 新浪微博OAuth2授权错误 error:redirect_uri_mismatch

    最近想在app进行新浪微博认证,结果发现总是报error:redirect_uri_mismatch错误. 网上搜了解决方法. 进入 http://open.weibo.com/apps/app_ke ...

  7. PrintPreviewControl

    用于按文档打印时的外观显示PrintDocument对象.此控件没有按钮或其他用户界面元素,因此通常只有在希望编写自己的打印预览用户界面时才会使用PrintpreviewControl 属性 Docu ...

  8. MySQL中报错: [Err] 1146 - Table 'performance_schema.session_status' doesn't exist 解决办法

    解决办法:1.打开cmd 执行命令cd/ 进入C盘根目录2.dir 查看C盘根目录下文件夹  找到 Program Files文件夹3.cd Program Files 进入该文件夹下 再输入dir ...

  9. 执行引入外部 jar 包的类的方法

    liunx 系统中,命令行中语法:(.后面是冒号:) java -cp .:third.jar MyClass windows 系统中命令行的语法:(.后面是分号;) java -cp .;third ...

  10. (一)Hybrid app混合开发模式

    hybrid app是什么? 这里我们先看一下词条上的定义 Hybrid App:Hybrid App is a mobile application that is coded in both br ...