Chinaunix首页 | 论坛 | 博客
  • 博客访问: 44977
  • 博文数量: 7
  • 博客积分: 740
  • 博客等级: 军士长
  • 技术积分: 190
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-28 18:06
文章分类

全部博文(7)

文章存档

2011年(1)

2008年(6)

我的朋友
最近访客

分类: 项目管理

2008-08-12 14:01:31

svn中的merge不好理解,操作了好多遍还是迷迷糊糊的。今天似乎懂了,所以记一笔。
如果现在trunk版本为100,我copy一个分支出来my_branche, 那么这个版本号就是101,我在branche中修修改改,把版本增加到了102,然后其他的人在trunk中提交了,版本到103,如此反复,my_branche最终的版本号是110。功能完成,我要merge到trunk中,
语法如下:
       1. merge sourceURL1[@N] sourceURL2[@M] [WCPATH]
       2. merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]
       3. merge [-c M | -r N:M] SOURCE[@REV] [WCPATH]
如果要merge到trunk中,就必须在trunk的working copy中使用merge,反过来,我们可以merge trunk到my_branche 中。
  merge是把两个sourceURL中的差别应用到workcopy中
merge -r 101:110
怎么理解? 上面的命令意思是把my_branche 101到110的变化应用到我的trunk work copy中。my_branche的101版本就是trunk的100版本,所以意思就是把我在branche中修改的功能应用到我现在的trunk workcopy 中,这个时候用svn st 就可以看到workcopy中有文件修改了,可以用svn diff 查看详细修改的地方。如果没问题,就可以svn ci 。那么我在my_branche中修改的功能就到trunk中了。
   根据相同的原理,可以把trunk的修改merge到branche。 没任何两样,svn中trunk 和branche只是用来区别的标识,没有功能上的区别,甚至我可以不用trunk和branche命名,就叫1 表示我的主干 用2 表示分支。随意。
  所以我们可以用merge的这个特性来回退版本,比如trunk版本是100, 修改了几次 到110。但是发现这些修改都没有必要,那怎么才能回到100呢? 在trunk的workcopy下执行
  merge -r 110:100
表示把110到100的变化 应用到workcopy中, 注意这是反过来的 ~~ 最后提交版本 版本号 111。内容和100 一样。
阅读(2092) | 评论(0) | 转发(0) |
0

上一篇:tar过滤打包

下一篇:字节对齐算法

给主人留下些什么吧!~~