SVN分支和合并
2010-01-06 10:58
148 查看
尽管svn没有作强制要求,但是一般svn版本库目录建议创建trunk、branches和tags三个目录。在实际操作时,trunk主干版本要时刻保持干净,即随时可以基于这个版本进行修改并将应用部署上线。branches是分支目录,存放并行开发的项目
代码,因为分支是主干的廉价拷贝(相当只是提交了一次主干版本,增加了一个版本号
,
并没有取出版本库作镜像拷贝),所以你可以放心建立很多分支版本。不过 Subversion不支持跨版本库的拷贝,当使用svn
copy时你只能在同一个版本库内操作。tags目录存放trunk某个的快照,比如说release-1.0即trunk处于1.0版本时的快照。
使用svn来作团队的代码管理,那么分支和合并将是非常常用的操作。下面是一个简单的示例。
1. 创建分支。这里假设你要负责一个叫theme的项目,分支号1.7.2。
1. #这里的localhost是svn服务器地址
2. svn copy -m "1.7.2 - theme" svn://localhost/www/trunk svn://localhost/www/branches/branch1.7.2-theme
3. svn co svn://localhost/www/branches/branch1.7.2-theme
2. 从trunk中merge到分支。忙了一个星期终于开发完了,但是开发期间trunk版本有过改动,部署上线前你需要合并trunk的代码。
1. #branch1.7.2-theme是分支目录,注意不可以进到分支子目录
2. cd branch1.7.2-theme
3. #前面的12972是开分支之前trunk的版本号,后面的12991是merge时trunk的版本号
4. svn merge -r 12972:12991 svn://localhost/www/trunk
如果有冲突选择p(postpone),merge完了之后使用svn st|grep ^C查看冲突文件,然后比对修改冲突文件。解决冲突后再check in ,信息写上执行的merge操作。
1. svn ci -m 'svn merge -r 12972:12991 svn://localhost/www/trunk'
3. 从分支merge到trunk。上线测试
完毕,你很幸运,一切都如预期正常,这时就要将分支回归trunk,将trunk更新到最新。
1. #先从trunk checkout一份新鲜的代码,然后cd到该版本目录下
2. svn co svn://localhost/www/trunk
3. cd trunk
4. #12973是分支开始的版本号,13006是分支结束的版本号
5. svn merge -r 12973:13006 svn://localhost/www/branches/branch1.7.2-theme
如步骤2一样解决冲突,解决冲突后再check in,信息写上执行的merge操作。
1. svn ci -m "svn merge -r 12973:13006 svn://localhost/www/branches/branch1.7.2-theme"
相关的手册可以参阅svn文档,电子版点这里下载
。
代码,因为分支是主干的廉价拷贝(相当只是提交了一次主干版本,增加了一个版本号
,
并没有取出版本库作镜像拷贝),所以你可以放心建立很多分支版本。不过 Subversion不支持跨版本库的拷贝,当使用svn
copy时你只能在同一个版本库内操作。tags目录存放trunk某个的快照,比如说release-1.0即trunk处于1.0版本时的快照。
使用svn来作团队的代码管理,那么分支和合并将是非常常用的操作。下面是一个简单的示例。
1. 创建分支。这里假设你要负责一个叫theme的项目,分支号1.7.2。
1. #这里的localhost是svn服务器地址
2. svn copy -m "1.7.2 - theme" svn://localhost/www/trunk svn://localhost/www/branches/branch1.7.2-theme
3. svn co svn://localhost/www/branches/branch1.7.2-theme
2. 从trunk中merge到分支。忙了一个星期终于开发完了,但是开发期间trunk版本有过改动,部署上线前你需要合并trunk的代码。
1. #branch1.7.2-theme是分支目录,注意不可以进到分支子目录
2. cd branch1.7.2-theme
3. #前面的12972是开分支之前trunk的版本号,后面的12991是merge时trunk的版本号
4. svn merge -r 12972:12991 svn://localhost/www/trunk
如果有冲突选择p(postpone),merge完了之后使用svn st|grep ^C查看冲突文件,然后比对修改冲突文件。解决冲突后再check in ,信息写上执行的merge操作。
1. svn ci -m 'svn merge -r 12972:12991 svn://localhost/www/trunk'
3. 从分支merge到trunk。上线测试
完毕,你很幸运,一切都如预期正常,这时就要将分支回归trunk,将trunk更新到最新。
1. #先从trunk checkout一份新鲜的代码,然后cd到该版本目录下
2. svn co svn://localhost/www/trunk
3. cd trunk
4. #12973是分支开始的版本号,13006是分支结束的版本号
5. svn merge -r 12973:13006 svn://localhost/www/branches/branch1.7.2-theme
如步骤2一样解决冲突,解决冲突后再check in,信息写上执行的merge操作。
1. svn ci -m "svn merge -r 12973:13006 svn://localhost/www/branches/branch1.7.2-theme"
相关的手册可以参阅svn文档,电子版点这里下载
。
相关文章推荐
- SVN从分支合并到主干,从主干合并到分支, 从分支合并到分支
- Eclise SVN在分支合并主干的修改
- svn分支开发与主干合并
- SVN分支的合并深度 Depth
- SVN使用教程之——分支、合并
- Eclipse下svn的创建分支/合并/切换使用
- SVN深入使用—分支与合并
- SVN使用教程之-分支/标记 合并 subeclipse
- SVN创建分支 合并分支 切换分支
- 版本管理-SVN分支,合并,切换
- Eclipse下svn的创建分支/合并/切换使用
- SVN分支与合并
- svn多分支合并主干冲突 svn Working copy and merge source not ready for reintegration
- SVN主干与分支的合并 ***
- 实例讲解SVN分支和合并问题(转)
- SVN使用教程之——分支、合并
- svn分支开发与主干合并(branch & merge)
- SVN使用教程之-分支/标记 合并 subeclipse
- SVN使用教程之-分支/标记 合并 subeclipse
- svn分支开发与主干合并(branch & merge)