- 浏览: 914910 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (537)
- Java SE (114)
- Struts (18)
- Hibernate (25)
- Spring (3)
- Page_Tech (41)
- Others (87)
- Database (29)
- Server (24)
- OpenSource_Tools (15)
- IDE_Tool (22)
- Algorithm (28)
- Interview (22)
- Test (28)
- Hardware (1)
- Mainframe (25)
- Web application (4)
- Linux (3)
- PHP (17)
- Android (1)
- Perl (6)
- ubuntu (1)
- Java EE (9)
- Web Analysis (5)
- Node.js (2)
- javascript (2)
最新评论
-
一键注册:
request.getRequestURL()和request.getRequestURI() -
SuperCustomer:
...
SED的暂存空间和模式空间 -
juyo_ch:
讲得挺好理解的,学习了
java 死锁及解决 -
chinaalex:
最后一题答案正确,但是分析有误.按照如下过程,上一行为瓶,下一 ...
zz智力题 -
liaowuxukong:
多谢博主啦,弱弱的了解了一点。
C++/Java 实现多态的方法(C++)
trunk :表示开发时版本存放的目录,即在开发阶段的代码都提交到该目录上。
branches :表示发布的版本存放的目录,即项目上线时发布的稳定版本存放在该目录中。
tags :表示标签存放的目录。
在这需要说明下分三个目录的原因,如果项目分为一期、二期、三期等,那么一期上线时的稳定版本就应该在一期完成时将代码copy到branches 上,这样二期开发的代码就对一期的代码没有影响,如新增的模块就不会部署到生产环境上。而branches上的稳定的版本就是发布到生产环境上的代码,如 果用户使用的过程中发现有bug,则只要在branches上修改该bug,修改完bug后再编译branches上最新的代码发布到生产环境即可。 tags的作用是将在branches上修改的bug的代码合并到trank上时创建个版本标识,以后branches上修改的bug代码再合并到 trunk上时就从tags的version到branches最新的version合并到trunk,以保证前期修改的bug代码不会在合并。
SVN—patch的应用
1.create patch
使用create patch可以生成一个或者多个修改过的文件和当前版本差异的patch(支持目录树)
通常情况下,create patch将修改保存为.patch或.diff文件
可以将.patch或.diff文件的内容复制出来,发给需要审查的人
.patch或.diff文件中记录了发生这个patch的版本号以及具体修改的内容
针对某个文件或某几个文件的若干种修改,可以生成多个.patch或.diff文件
2.apply patch
可以将.patch或.diff文件应用到对应版本的项目,就像打补丁一样
同一个项目/文件夹下,可以选择应用需要的patch
通常来说,应用一个patch时文件版本和生成这个patch时文件的版本是一致的;如果不一致,也可以强制应用,svn会自动进行diff(这时候需要手动合并)
linux下,可以使用系统的patch命令来应用patch,eg: patch -p0 <xxx.patch
3.使用
暂时不需要提交或不允许提交的修改,可以选择create patch来保存修改的内容
选择create patch来保存修改的内容并且提交patch,通过审查后,(在服务器端)应用patch
当一个功能有多种解决方案时,可以生成多个patch,(提交后)分别经过测试,再决定应用哪个patch
多个功能分别需要改同一个文件的不同地方(即没有同一行),可以做成多个patch,应用patch的顺序没有要求(在linux下应用也一样成功,只是会生成多个.orig文件)
多个连续性的功能,他们修改的文件都与一个base作patch,例:p1在v1的基础上开发v2,生成v2和v1之间的patch1;p2在v2的基础上开发v3,生成v3和v1之间的patch2,这样只要应用patch2也就应用了patch1。
4.带来的问题
一个较早的patch,在经过多轮提交后,如果想再要应用,需要严格的diff
如果两个patch分别改了同一行代码,应用第一个patch后要再应用第二个patch时,仍然需要diff。如果在linux下,会产生冲突,生成.orig和.rej两个文件(此时仍然需要手动进行比较合并)
第3部分提到的连续性,要准确的预见到,比较困难
第3部分提到的多个连续的功能,后做的功能的某个文件更新了先做的功能的内容,但先做的功能可能还涉及到其他文件,容易造成漏更新文件的情况.
================================================================= 翻译者:zwws 因水平所限,如果翻译得和原文有差,敬请评论指正。
在本篇文章中,
我将会详细说明我是如何应用SVN trunk(树干)、branches(分支)和tags(标记)。这种方法同样被称为“branch
always”,两者非常接近。可能我所介绍的并不是最好的方法,但是它会给新手一些解释说明,告诉他们trunk、branches和tags是什么,
并且该如何去应用它们。 当然,如果本文有些要点需要澄清/确认,亦或者有一些错误的观点,还请你评论,自由发表自己的观点。 ——简单的对比
SVN的工作机制在某种程度上就像一颗正在生长的树: ——Trunk
Trunk是放置稳定代码的主要环境,就好像一个汽车工厂,负责将成品的汽车零件组装在一起。 以下内容将告诉你如何使用SVN trunk: ——Branches
一个branch就是从一个SVN仓库中的子树
所作的一份普通拷贝。通常情况它的工作类似与UNIX系统上的符号链接,但是你一旦在一个SVN
branch里修改了一些文件,并且这些被修改的文件从拷贝过来的源文件独立发展,就不能这么认为了。当一个branch完成了,并且认为它足够稳定的时
候,它必须合并回它原来的拷贝的地方,也就是说:如果原来是从trunk中拷贝的,就应该回到trunk去,或者合并回它原来拷贝的父级branch。 以下内容将告诉你如何使用SVN branches: ——Tags
从表面上看,SVN branches和SVN tags没有什么差别,但是从概念上来说,它们有许多差别。其实一个SVN tags就是上文所述的“为这棵树照张相”:一个trunk或者一个branch修订版的命名快照。 以下内容将告诉你如何使用SVN tags: ——工作流样例
假设你必须添加了一个特性至一个项目,且这个项目是受版本控制的,你差不多需要完成如下几个步骤:
原 文:
SVN trunk, branches and tags
译 言:http://article.yeeyan.org/view/132319/81358
转载请注明原链接
,谢 谢。
发表评论
-
NotePad ++ 设置列边界
2012-03-15 10:29 1389NotePad++是一款很好的编辑文本的工具,在编写程序上也相 ... -
Notepad++ Tips
2012-03-15 09:44 1248问:在网页中复制代 ... -
eclipse Tips
2012-02-14 16:34 701To be continue.. 1. 选定一个 ... -
eclipse 快捷键
2011-05-23 16:47 853Ctrl + Shift + T:打开类型:显示" ... -
安装 m2eclipse 插件
2010-10-22 11:21 1244要安装m2Eclipse插件,你需要符合一些先决条件。你需要运 ... -
Myeclipse使用技巧两三则
2010-07-06 10:26 1440最近听说Eclipse的工程直接可以使用Myeclipse开发 ... -
同时开启两个Tomcat
2010-04-07 11:00 1019下载地址:http://tomcat.ap ... -
MyEclipse 6.5 最新下载、注册、汉化
2010-04-07 09:45 2918因最近发现网上很多转 ... -
eclipse打开某个jsp文件报空指针错误
2010-03-10 13:07 1952解决方法: 第一:文档右击-->open wITh-- ... -
Tomcat插件--Devloader (免重启的开发插件)
2010-03-05 19:15 2655Sysdeo的Tomcat Plugin是Eclipse下面一 ... -
Eclipse中安装Maven
2009-12-12 16:56 23171. 首先进入Apache Maven的网站,ht ... -
Eclipse插件的安装有两种方法
2009-11-21 15:02 8961、在eclipse的主目录(ECLIPSE_HOME,比如在 ... -
eclipse支持J2EE开发的几个插件
2009-11-21 15:01 3670eclipse 并没有附带J2EE开发工具,不过却有一些插件能 ... -
Eclipse WTP 入门教程
2009-10-06 00:46 2206环境配置:Eclipse版本 eclipse-SDK-3.3. ... -
MyEclipse下Spring、Hibernate结合
2009-10-06 00:33 1082时下流行的开发模式:Spring+Hibernate+Stru ... -
myeclipse 编辑jsp智能提示 运行慢的解决办法
2009-10-06 00:32 3516myeclipse 编辑jsp 的智能提示 这个问题的确很 ... -
myeclipse jsp 编辑器 自动提示 慢 卡 终极解决
2009-10-06 00:31 2159上一篇文章只是解决单个工程表面问题,也就是提示的时候用了我自己 ... -
Maven2之旅
2009-10-06 00:29 917Maven2之旅 关于Maven2的系列文章 我的 ... -
Eclipse常用插件列表
2009-09-30 13:33 932Properties Editor Pro ... -
Eclipse插件的安装
2009-09-30 13:20 922Eclipse 本身的开发能力 ...
相关推荐
如果在`trunk`或`branches`上发现了需要修复的bug,可以在`branches`上修复,然后从对应的`tag`到`branches`的最新版本进行合并,以确保历史版本的修改被正确记录。 在实际操作中,以下是一些典型场景的应用: - *...
当需要建立 branch 或 tag 时,可以使用 SVN 中的 copy 操作,例如,从 trunk 中 copy 到 branches 中,或者从 trunk 中 copy 到 tags 中。 权限控制 在 SVN 中,可以使用 authz 文件控制目录的访问权限。例如,...
本文将深入探讨 SVN 中的 trunk、branch 和 tag 三个核心概念,以及它们在实际开发场景中的应用。 首先,trunk(主干或主线)是项目的主要开发分支,代表了项目的最新稳定状态。新功能的开发通常在这个分支上进行,...
但需要注意的是,SVN 不推荐在创建的 Tag 基础上 Revision,这种情况应用 Branches,因为 Tag 一般保持不变不作任何修改。 SVN 中的 Branches 和 Tags 都可以帮助开发者更好地管理代码的版本,并且可以避免编译错误...
通过对SVN中Trunk、Branch、Tag的概念及使用方法的介绍,我们可以更好地理解如何高效地使用SVN来进行版本控制。遵循这些约定能够有效提升团队协作效率,减少代码冲突,确保项目的稳定性和可持续发展。
资源中有 SVN 主干(trunk)、分支(branch )、标记(tag) 的详细解释,和作用 并带 SVN分支与合并 的详细操作文档(附图)。 SVN分支与合并的总结 1.分支(branche)的创建。 1、分支创建是建立在主干上的。 2、创建...
- **创建分支**:在 `trunk` 的 `examples1` 目录中选择 “Branch/tag”,然后指定分支路径为 `branches/examples1` 并添加相应的注释信息。 ```bash # 创建分支 svn copy ...
svn copy http://your_svn_server/trunk http://your_svn_server/tags/my_tag -m "Create tag for version 1.0" ``` 在这个例子中,我们从/trunk/目录复制了一个版本到/tags/my_tag/目录,并附带了一个日志信息。 ...
在SVN中,有三个重要的概念:`trunk`、`branches` 和 `tags`。 - **Trunk**(主干):代表的是项目的主要开发线路。通常情况下,所有的日常开发活动都是在这个主干上进行的。 - **Branches**(分支):是从主干或者...
- **示例**:`svn copy http://example.com/repo/project/trunk http://example.com/repo/project/branches/mybranch` 11. **svn delete (rm)** - **作用**:删除工作副本中的文件或目录。 - **示例**:`svn ...
- 创建代码库时,可选择是否自动创建trunk、branches、tags子目录 - 添加用户,如Developer1、tester1、manager1,并设置权限 - 对用户或用户组进行权限分配,如starter、tester1为只读,Developer1和manager1为读写...
3. 使用SVN trunk的原则: - 开发大型项目时,不应直接在trunk中进行开发,而是应在分支上完成新功能或修复,然后合并到trunk。 - 对于特殊需求或定制版本,应在分支上开发,避免对主线代码造成过多影响。 - 提交...
svn copy https://your-repo-url/trunk https://your-repo-url/branches/feature-X -m "Creating branch for feature X development" ``` 这将在仓库中创建一个新的分支,并记录这次操作为一次提交。 2. 工作...
1. 使用TortoiseSVN客户端工具的`Branch/Tag`功能,选择本地trunk项目,然后指定新的分支或标签路径,点击OK完成操作。 2. 在SVN服务器的对应分支或标签目录下直接创建新文件夹,然后将trunk中的稳定版本代码复制...
1. **初始化目录结构**:根据项目需求初始化`trunk`、`branches`、`tags`目录结构。 2. **Version 1.0 开发**: - 在`trunk`上进行初始版本1.0的开发工作。 - 版本开发完成后,给版本1.0打标签:`tag_release1.0...
SVN的库结构通常包括三个主要部分:`trunk`(主开发线)、`branches`(分支)和`tags`(标签)。`trunk`是开发的主要路径,存放稳定且持续更新的代码。`branches`用于创建并处理新功能或修正错误,不影响主开发线。...
### SVN如何建立版本分支 #### 一、理解SVN中的版本控制结构 在Subversion (SVN) 中,为了有效地管理项目的开发流程和版本控制,通常会在项目版本库中建立以下三个主要的目录: 1. **Trunk**:作为项目的主干分支...
- `svn copy` 和 `svn tag`:创建分支和标签。 5. **图形界面工具** - TortoiseSVN:Windows平台常用的图形化SVN客户端,直观易用。 - SmartSVN:跨平台的高级SVN客户端,提供更多高级功能。 6. **协同开发** ...
1. **主干与分支管理**:在SVN中,主干(trunk)是主要的开发线,而分支(branches)则用于隔离特定的功能开发或维护。分支上的修改不会影响主干,完成分支工作后,可通过合并(merge)将分支的改动回溯到主干。 2....