Archive for June, 2010

由于使用太久时间的 TortoiseSVN(因图标是个乌龟,常爱称为小乌龟), 习惯了在Windows资源管理器下的Merge(版本合并)操作。在换了Mac之后,只好使用终端(控制台)下的svn命令,有些简单操作没有太大问题,如:co(check out),up(update),ci(commit)等。但在 Merge操作还不太适应。每次merge都是要开动虚拟机,用win下的环境来操作。想想确实比较无奈。 今天在家,不想再开虚拟机里和在里面连公司的VPN,这样麻烦无比,于是研究了一下用svn命令操作merge。 人都是被逼的。 我的SVN项目环境: 开发主干:~/svn/proj/trunk 要发布(合并)的分支:~/svn/proj/branches/proj-1.2 首先,切换到工作路径:cd ~/svn/proj/branches/proj-1.2 也就是发布版本的目录位置 检查两个版本:发布分支版 svn info 找到 Last Changed Rev即为最后版本号(当前上次版本是4067,这个版本正是我要发布的,建议先svn up一次,万一有其他成员在此做过发布呢) 开发主干版本 svn info ~/svn/proj/trunk/ (得到当前最新版本是 4070) 先收集开发主干的日志: svn log -r4067:4070 ~/svn/proj/trunk/ > ~/tmp/r4067.txt 清理一下日志格式,去掉不需要的内容(如空行),如果需要,还可以再编辑一下: grep -v “^[r-]” ~/tmp/r4067.txt |grep -v “^$” >~/tmp/r4067-clean.txt 开始合并代码(当前目录仍位于发布分支/branches/proj-1.2): svn merge -r 4069:4070 ~/svn/proj/trunk/ . 合并过程会有详细的文件版本修正清单 也可以在合并后用svn status查看修正内容清单 最后,用 svn […]