`

<转>SVN版本控制

阅读更多

Most software has a typical lifecycle: code, test, release, repeat. There are two problems with this process. First, developers need to keep writing new features while quality-assurance teams take time to test supposedly-stable versions of the software. New work cannot halt while the software is tested. Second, the team almost always needs to support older, released versions of software; if a bug is discovered in the latest code, it most likely exists in released versions as well, and customers will want to get that bugfix without having to wait for a major new release. Here's where version control can help. The typical procedure looks like this:

<1> Developers commit all new work to the trunk. Day-to-day changes are committed to /trunk: new features, bugfixes, and so on.

<2> The trunk is copied to a "release" branch. When the team thinks the software is ready for release (say, a 1.0 release), then /trunk might be copied to /branches/1.0.

<3> Teams continue to work in parallel. One team begins rigorous testing of the release branch, another team continues new work (say, for version 2.0) on /trunk. If bugs are discovered in either location, fixes are ported back and forth as necessary. At some point, however, even that process stops. The branch is "frozen" for final testing right before a release.

<4> The branch is tagged and released. When testing is complete, /branches/1.0 is copied to /tags/1.0.0 as a reference snapshot. The tag is packaged and released to customers.

<5> The branch is maintained over time. While work continues on /trunk for version 2.0, bugfixes continue to be ported from /trunk to /branches/1.0. When enough bugfixes have accumulated, management may decide to do a 1.0.1 release: /branches/1.0 is copied to /tags/1.0.1, and the tag is packaged and released.

This entire process repeats as the software matures: when the 2.0 work is complete, a new 2.0 release branch is created, tested, tagged, and eventually released. After some years, the repository ends up with a number of release branches in "maintenance" mode , and a number of tags representing final shipped versions.

分享到:
评论

相关推荐

    玩转SVN版本控制系统

    自己写的浅显易懂可直接对照操作的SVN安装使用教程 教你如何在Linux服务器上安装,并创建项目

    SVN使用手册中文版快速入门

    未受版本控制的属性 版本库数据存储 Berkeley DB FSFS 版本库的创建和配置 钩子脚本 Berkeley DB配置 版本库维护 管理员的工具箱 svnlook svnadmin svndumpfilter svnshell.py Berkeley DB工具 版本库清理 管理磁盘...

    svn学习,svn学习,svn相关信息

    版本控制介绍 2.常用软件 二、Subversion基础 1.发展历史 2.特性 3.安装 4.组成 5.配置 三、基本操作 1.检出Check Out 2.提交Commit 3.解决冲突 4.标签Tag 四、分支与合并 1.版本库的...

    SVN使用手册中文版.chm

    未受版本控制的属性 版本库数据存储 Berkeley DB FSFS 版本库的创建和配置 钩子脚本 Berkeley DB配置 版本库维护 管理员的工具箱 svnlook svnadmin svndumpfilter svnshell.py Berkeley DB工具 版本库清理 管理磁盘...

    SVN+中文语言包 - 让您的Subversion客户端“说”中文

    学习者:学习SVN版本控制系统的初学者和学生。 在使用本中文包前,请确保您了解对SVN客户端所做的修改。本中文语言包仅供学习和非商业用途,使用过程中遇到的任何问题,本资源作者不承担责任。如果您在使用过程中有...

    使用Subversion进行版本控制(针对 Subversion 1.4)

    使用Subversion进行版本控制针对 Subversion 1.4(根据r2866编译) 参照网页版 http://svndoc.iusesvn.com/svnbook/1.4/制作而成。 目录 前言 序言 读者 怎样阅读本书 本书约定 排版习惯 图标 本书的结构 本书是...

    SVN操作手册中文版网页格式

    转换后为网页格式的&lt;SVN操作手册中文版&gt; 目录 译者序 前言 序言 读者 怎样阅读本书 本书约定 排版习惯 图标 本书组织结构 Subversion 1.1的新特性,svn客户端和linux下命令行。 目录 1. 简介 1.1. 什么是 ...

    SVN使用手册,有图有说明

    2.3.12. 忽略无需版本控制的文件 2.3.13. 去除SVN标志 2.3.14. 查看文件每行的修改信息 2.3.15. 重置访问路径 2.3.16. 本地路径转换 2.4. 浏览版本库 2.5. 建立标签 2.6. 建立分支 2.7. 清除用户名等信息 ...

    SVN使用手册大全

    目 录 1. 修改 SVN 访问密码 2. SVN 客户端使用说明 2.1. 安装 SVN 客户端 ...2.3.12. 忽略无需版本控制的文件 2.3.13. 去除 SVN 标志 2.3.14. 查看文件每行的修改信息 2.3.15. 重置访问路径 2.3.16. 本地路径转换

    带你玩转SVN

    SVN是版本控制利器,团队协作工具之一。本课程主要面向开发人员,帮助初学者意识到版本控制的重要性,掌握SVN环境的搭建,以及SVN客户端工具的使用。

    Spring Security-3.0.1中文官方文档(翻译版)

    另:Spring Security 从2010-01-01 以后,版本控制从SVN 换成了GIT,我们在翻译文档的 时候,主要是根据SVN 的变化来进行文档内容的比对,这次换成GIT 后,感觉缺少了之前 那种文本比对工具,如果有对GIT 熟悉的...

    一个适合新手学习的电商项目

    maven(构建项目),svn(版本控制工具),myeclipse(集成开发环境),nginx(反向代理), FastDFS (图片服务器),tomcat(web服务器),zookeeper(集群管理),mysql(数据库) Junit(测试) ### 技术栈: spring,...

    TortoiseSVN使用手册(中文版)

    TortoiseSVN使用手册(中文版):TortoiseSVN是SVN版本控制器的客户端程序,TortoiseSVN使用手册(中文版)教你如何玩转TortoiseSVN客户端版本控制器程序。

    在Eclipse中使用SVN与CVS代码管理工具管理项目

    ClearCase主要应用于复杂产品的并行开发、发布和维护,其功能划分为四个范畴:版本控制、工作空间管理(Workspace Management)、构造管理(Build Management)、过程控制(Process Control)。ClearCase通过TCP/IP...

    基于SVN的软件配置管理和持续集成

    详细介绍了基于SVN的软件配置管理和持续集成,主要包括权限管理、SVN控制管理下的开发工作、建立编码基线、构建内部转测试版本、变更管理、版本管理等内容;最后介绍了一个典型工作案例。工作实践表明采用该管理方法...

    git下载安装使用

    git的简介文档,软件安装,Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的...

    “ 官网 ”最新版-《Git-2.34.1-64-bit.exe》

    Git 是一个免费和开源的分布式版本控制系统,旨在以速度和效率处理从小型到大型项目的所有内容。 Git易于学习, 占用空间小,性能快如闪电。它优于 SCM 工具,如 Subversion、CVS、Perforce。 Git 与常用的版本控制...

    硬件管理构想

    然后将软件管理思想结合起来构造出用git来控制硬件版本控制。同时也出了描述了一套管理方法。而这套硬件管理方法是面对4-6人的团队硬件管理一个构想。 这构想总体上来说是 1, 用ORCAD结合数据库控制硬件工程师用料...

    SVNStartCommitHelper:支持SVN作为SVN启动提交挂钩脚本提交的有用形式。-开源

    SVNStartCommitHelper是一个客户端启动提交钩子脚本(作为用Python / Tkinter编写的第一个版本),恰好提供了结构良好的表单来进行填充。然后将已编辑的内容转换并转发到SVN提交对话框。 这样,您仍然完全可以控制...

    Git权威指南PDF完整版

    1.3 SVN—集中式版本控制集大成者/ 7 1.4 Git—Linus 的第二个伟大作品/ 9 第2章 爱上 Git 的理由/ 11 2.1 每日工作备份/ 11 2.2 异地协同工作/ 12 2.3 现场版本控制/ 13 2.4 避免引入辅助目录/ 15 2.5 重写提交说明...

Global site tag (gtag.js) - Google Analytics