svn命令
2016 年 8 月 20 日
标准目录
trunk主开发代码。
branches分支代码。一般以版本或者功能feature为一个branche。
release发布版本。
tags备份版本。永远不做修改。
这些目录只是研发过程中约定俗成后的规范。便于版本控制和管理。
所以他们的命令都一样,都是用svn copy
svn copy svn://server/trunk svn://server/branches/ep -m "init ep"
使用场景如下:
- trunk是个持续更新的稳定版本。
- 有新需求时从trunk copy到branches,开启一个分支。
- 测试完成。再从branch copy到release。封版发布。同时merge代码回到trunk。再copy为tag作为备份。
- 如果上述发布的release有紧急bug需要修复。而trunk代码已经比release还要新了。这时从上述release copy变成branch。之后回到步骤3.
代码合并
如何合并svn分支到主干上?
1.进入主干的svn目录
2.首先查询出创建分支的开始版本
命令:svn -q --stop-on-copy 分支URL,这条命令会查询出自创建分支以后
分支上的所有修改,最下面的那个版本号就是我们要找的版本号.
示例:
svn log -q --stop-on-copy svn://192.168.1.177/tags/beta_2009_12_24
3.使用svn merge命令合并分支。
命令:
svn -r 分支版本号:HEAD 分支的URL
解释:HEAD为当前主干上的最新版本
示例:
svn merge -r 12:HEAD svn://192.168.1.177/tags/beta_2009_12_24
4.使用svn st | grep "C "查找合并时的冲突文件,手工解决冲突
5.使用svn commit -m "" 提示合并后的版本