一直没明白trunk branches tags的意思,今天问了一下google,来理解一下。 trunk:主线,开发过程中的工作目录 branches:支线,临时分支,定制化需求 branches/order008 branches/order009 tags:发布目录,不做修改 tags/release-1.0 tags/release-1.1 场景一: 产品开发已经基本完成,并且通过很严格的测试,这时候我们就想发布我们的1.0版本,不再提交代码 1. svn copy svn://server/trunk svn://server/tags/release-1.0 -m \"1.0 released\" 场景二: 有一个客户想对产品做定制,我们可以从已发布库中选择一个版本,做为起点来开发 1. svn copy svn://server/tags/release-1.0 svn://server/branches/order009 -m \"定单009\" 场景三: 有一天,突然在trunk下的core中发现一个致命的bug,那么所有的branches一定也一样,这时需要进行分支合并 1. svn -r 148:149 merge svn://server/trunk branches/order008 2. svn -r 148:149 merge svn://server/trunk branches/order009 其中148和149是两次修改的版本号。 由于我们是给自己公司的网站源码做配置管理,没有明确的trunk branches tags区分。我们以SCRUM的形式做开发,一般保持两个版本线,一条主线A,一条支线B。A与运行版本保持一致,B做为Sprint开发的工作目录。A,B都可以提交代码,视情况在A,B之间进行部分合并。Sprint开发完成后,进行总合并,并选择其中一条继续做主线,移除另一条。下一期Sprint开始的时候,继续A,B两条线的开发。 这样做的目的,也是为了适应自己的配置需求,在进行B线开发时,经常会有A线的改动。A线的代码保持最新,可更新到运行环境的能力。混乱经常发生在合并A,B的时候,不过长痛不如短痛,用一时的混乱,换取长期的稳定。 |
|Archiver|手机版|小黑屋|创星网络
( 苏ICP备11027519号 )
|网站地图
GMT+8, 2025-2-23 01:01 , Processed in 0.051777 second(s), 16 queries .
Powered by Discuz! X3
© 2001-2013 Comsenz Inc.