Subversion简介
作为一名编程人员,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简介的更多相关文章
- Subversion简介(一)
Subversion 就是一款实现版本控制的工具软件,通常也称为版本控制器,简称 SVN. Subversion 是 Apache 软件基金会组织下的一个项目. SVN 的工作原理:采取客户端/服务器 ...
- Subversion how[Reprint]
1. Subversion简介 Subversion(简称SVN)是一款功能强大的开源版本控制工具,支持Linux和Windows平台. SVN可以有两个访问方式,一种是独立服务器直接访问,即利用 ...
- CentOS 6.3 + Subversion + Usvn 搭建版本管理服务器
一. Subversion 简介 Subversion是一个自由,开源的版本控制系统.在Subversion管理下,文件和目录可以超越时空.Subversion将文件存放在中心版本库里.这个版本库很像 ...
- Linux运维之道(大量经典案例、问题分析,运维案头书,红帽推荐)
Linux运维之道(大量经典案例.问题分析,运维案头书,红帽推荐) 丁明一 编 ISBN 978-7-121-21877-4 2014年1月出版 定价:69.00元 448页 16开 编辑推荐 1 ...
- Eclipse下使用SVN版本控制
作者:朱先忠编译 转自天极[url]http://dev.yesky.com/356/2578856.shtml[/url] 简单介绍一些基本操作1.同步在Eclipse下,右击你要同步的工程-tea ...
- [转]将已有项目代码加入svn版本控制
原文链接:https://blog.csdn.net/aaroun/article/details/79074178 将已有项目代码加入svn版本控制 - TortoiseSVN入门篇Windows下 ...
- SVN将项目代码加入svn版本控制
将已有项目代码加入svn版本控制 - TortoiseSVN入门篇Windows下SVN实用教程(以TortoiseSVN作为客户端(client)) 翻译: Bravo Young Next: 版本 ...
- Subversion Server Edge用户权限设置简介
Subversion Server Edge用户权限可分为两种,一种为按用户权限,一种为按组权限设置 1.按用户设置权限 [codeLibrary:/] //对整个代码库 *=r //所有用户 ...
- 版本管理工具svn简介
svn简介 SVN是一种C/S架构的版本管理软件 , 能够帮助我们保存开发过程中各个文件的所有历史版本, 你因此可以方便的找回软件的任何一个历史状态., 日常开发中经常用到. 安装使用 1. 在 u ...
随机推荐
- Android NDK开发 Jni中打日志LOG(二)
HelloJni.c文件中,加入头文件和函数声明.最终文件如下: #include <jni.h> #include <string.h> #include<androi ...
- 3d Max 2012安装失败怎样卸载3dsmax?错误提示某些产品无法安装
AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...
- thinkphp3.2 删除Runtime目录里的缓存文件,标记一下,以下好找。
操作如下: utility::clearCache("Data"); 或 utility::clearCache("Data-Logs"); class uti ...
- 一、简单gridview列表展示
1.HomeController public ActionResult Index() { //返回绑定models的index.cshtml return View(NorthwindDataPr ...
- ArrayList、Vector、HashMap、HashSet
1. list 和 set 的有序无序是否可重复 List是有序可重复的: Set是无序不可重复的: 2.ArrayList.Vector.HashMap.HashSet的默认初始容量.加载因子.扩 ...
- vueHistory 模式下,布置到服务器上路由刷新会报nginx404错误
之前写完vue项目后,布置到服务器,用nginx反向代理后,一开始进去,进各种路由都是没问题的,但是一旦f5刷新后就会出现一个nginx404的错误. 经过翻阅vue文档后,发现这是vueHistor ...
- js中各种距离clientWidth
1: offsetLeft.offsetTop.offsetHeight.offsetWidth 1.1 偏移参照——定位父级offsetParent offsetParent的定义是:与当前元素 ...
- python模块介绍和 import本质
模块的定义: 用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质上就是.py结尾的python文件. 包的定义: 用来从逻辑上组织模块的,本质上就是一个目录.(必须有一个__ ...
- System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值.解决办法是: 而这位大哥提出的解决办法 ...
- 关于form的action路径填写
一:可以是相对路径: 1.action="<%=request.getContextPath() %>/html/index.html" <%=request. ...