svn命令

标准目录

trunk主开发代码。
branches分支代码。一般以版本或者功能feature为一个branche。
release发布版本。
tags备份版本。永远不做修改。

这些目录只是研发过程中约定俗成后的规范。便于版本控制和管理。
所以他们的命令都一样,都是用svn copy

svn copy svn://server/trunk svn://server/branches/ep -m "init ep"  

使用场景如下:

  1. trunk是个持续更新的稳定版本。
  2. 有新需求时从trunk copy到branches,开启一个分支。
  3. 测试完成。再从branch copy到release。封版发布。同时merge代码回到trunk。再copy为tag作为备份。
  4. 如果上述发布的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 "" 提示合并后的版本