创建分支
svn cp -m "create branch" http://svn_server/xxx_repository/trunk http://svn_server/xxx_repository/branches/br_feature001
获得分支
svn co http://svn_server/xxx_repository/branches/br_feature001
合并版本前最好全部提交一下,保证SVN上面保持最新的代码
合并主干上的最新代码到分支上
cd 到分支目录
cd br_feature001
svn merge http://svn_server/xxx_repository/trunk
用merge命令合并 冲突全部选择p (推后处理) 完成之后打开Xcode去解决冲突
之后提交解决冲突之后的代码
分支合并到主干
一旦分支上的开发结束,分支上的代码需要合并到主干。SVN中执行该操作需要在trunk的工作目录下进行。命令如下:
1>合并版本并将合并后的结果应用到现有的分支上
svn -r 148:149 merge http://svn_server/xxx_repository/trunk
1, 查找到分支版本
方法一:cd branch
svn log --stop-on-copy
最后一个r11340就是创建分支时的reversion
这一块获取的r11340是之后一个版本,也是创建当前分支的版本
方法二:cd trunk
命令:svn -q –stop-on-copy 分支URL,这条命令会查询出自创建分支以后分支上的所有修改,最下面的那个版本号就是我们要找的版本号.
示例:
svn log -q --stop-on-copy svn://192.168.1.177/tags/beta_2009_12_24
2, 合并到主干
命令:svn -r 分支版本号:HEAD 分支的URL
解释:HEAD为当前主干上的最新版本
示例:
cd trunk
svn merge -r 11340:HEAD svn://192.168.1.177/tags/beta_2009_12_24
这里的11340就是刚才获取到的分支创建时候的版本
/*
cd到trunk目录下
1>分支合并到主干中完成后应当删该分支,因为在SVN中该分支已经不能进行刷新也不能合并到主干。
svn merge --reintegrate http://svn_server/xxx_repository/branches/br_feature001
svn merge --reintegrate 分支url
*/
删除分支或tags
svn rm http://svn_server/xxx_repository/branches/br_feature001
svn rm http://svn_server/xxx_repository/tags/release-1.0
解决冲突提交的时候出现???这一类的情况的时候
在冲突发生时, 先可以用这些命令查看一下状态:
用svn status(st)查看哪些文件冲突了:
lishikejideiMac:OptimalShop JeanHead$ svn st
? C 114x114.png
> local missing or deleted or moved away, incoming file delete or move upon merge
? C 120x120.png
> local missing or deleted or moved away, incoming file delete or move upon merge
? C 40x40.png
> local missing or deleted or moved away, incoming file delete or move upon merge
? C 57x57.png
> local missing or deleted or moved away, incoming file delete or move upon merge
? C 60x60.png
> local missing or deleted or moved away, incoming file delete or move upon merge
Summary of conflicts:
Tree conflicts: 5
lishikejideiMac:OptimalShop JeanHead$
用svn info查看冲突信息:
lishikejideiMac:OptimalShop JeanHead$ svn info 114x114.png
Path: 114x114.png
Name: 114x114.png
Repository Root: https://106.14.250.80/svn/ios_OptimalShop
Repository UUID: 0dbb9cbe-ded1-974b-adec-b5c9369b28f2
Node Kind: none
Schedule: normal
Tree conflict: local missing or deleted or moved away, incoming file delete or move upon merge
Source left: (file) ^/branch/huanxin/OptimalShop/OptimalShop/114x114.png@15
Source right: (none) ^/branch/huanxin/OptimalShop/OptimalShop/114x114.png@17
冲突处理
文件被删除了, 但是还需要
服务端modified, 本地missing, 选择their conflict就可以了
svn resolve --accept=theirs-conflict file.c
本地modified, 服务端missing
svn resolve --accept=working file.c
例子:
lishikejideiMac:OptimalShop JeanHead$ svn resolve --accept=working 114x114.png
Resolved conflicted state of '114x114.png'
lishikejideiMac:OptimalShop JeanHead$ svn resolve --accept=working 120x120.png
Resolved conflicted state of '120x120.png'
lishikejideiMac:OptimalShop JeanHead$ svn resolve --accept=working 57x57.png
Resolved conflicted state of '57x57.png'
lishikejideiMac:OptimalShop JeanHead$ svn resolve --accept=working 60x60.png
Resolved conflicted state of '60x60.png'
lishikejideiMac:OptimalShop JeanHead$ svn resolve --accept=working 40x40.png
Resolved conflicted state of '40x40.png'
之后重新添加
svn add 114x114.png
svn add 120x120.png
svn add 57x57.png
svn add 60x60.png
svn add 40x40.png
svn commit -m"add icon"
完成