首页 > soft > svn 创建分支与合并
2009十月22

svn 创建分支与合并

平时工作都是用svn的,然而我用着却并不熟练。只是经常用到的 svn checkout , svn ci -m ” ,svn up ,svn diff之类的比较熟悉,而创建分支和合并却几乎没用到。

在前几天打了一个分支,今天需要把这个分支合并,这可太郁闷了。工具不熟用着不顺手啊。这里记录一下这些常用的命令,希望给自己提个醒吧。

快速学习svn:

之所以学习svn很慢,是因为没有地方练习。啥,你说线上的代码没事改着玩?那样会死的很惨。线上代码一定要小心,再小心。

前几天,同事说 Google code 不错,去网上搜了一下,惊呼,这不就是让我快速学习掌握svn命令的东西吗?爽也。

关于 google code的介绍不再多谈,大家自己去搜一下吧,相信会收获很多的,我这里不是为google 打广告,不再缀述。

svn 创建分支:

svn copy trunk_path  branch_path  -m '描述'

如下代码,我在我的google code上面创建了一个我自己项目的分支(毛项目也不是,就是练习svn命令的)

svn copy https://simaopig.googlecode.com/svn/trunk https://simaopig.googlecode.com/svn/branches/20091022 -m 'make a new branches by yufulong'

提交后的修订版为 21

svn 查看创建分支时的版本号:

大家在上面的例子中看到了我的创建分支时的版本号为21。可是当我把分支里的内容改过,或者trunk的内容被别人改过后。就凭咱这脑袋是打死也不会记得这个创建分支时的版本号的。这可就成问题了,不知道合并哪些版本了。。

svn info查看最新版本

svn info查看最新版本

看现在的版本号变成23了,这才几分钟。如果时间长了的话。我真的会不记得这个创建分支时的版本号的。咋办呢?

svn log --verbose --stop-on-copy branch_path

看我执行该命令后的结果:

svn log --verbose --stop-on-copy

svn log --verbose --stop-on-copy

看到没,在最后一行,显示的那个版本号就是你创建该分支时的版本号。 stop on copy 多么形象啊。赞一个。

svn 合并分支:

内容改完了,要上线了。我们应该把分支的内容与trunk上的内容合并。咋合并呢?

#进入有trunk版本的目录中
svn merge -r 旧的版本号:现在的版本号 branch_path
svn merge

svn merge

svn 代码冲突的解决:

使用svn管理的代码可能有多个人在维护。哪怕就是你自己也可能让trunk和branch上面的代码产生冲突。合并后的C符号就是代表文件有冲突的意思。

我解决冲突的方法是手动去掉那些不必要的代码。看留哪个。但是去掉后一些svn冲突的文件仍然存在,咋办?

冲突产生的多余文件

冲突产生的多余文件

svn resolved 冲突的文件名

当手动解决完冲突后你会发现这些多出来的文件仍然存在,别怕,使用上面的命令:如果你的冲突真的解决了,那么多出来的文件会自动删除掉的。可比你自己手动rm要方便的多了。

svn resolved

svn resolved

扩展阅读:

工欲善其事,必先利其器。我这懒惰的毛病啥时候能改呢?唉。。

PS:下面的svn手册是我放在google docs里共享的。大家可以下载下来看,更方便,也更清晰。

文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/10/22/1582/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

9 Responses to “svn 创建分支与合并”

  1. #1 Louis Han 回复 | 引用 Post:2009-10-23 00:45

    我要好好学习一下! :roll:

    [回复]

  2. #2 记忆 回复 | 引用 Post:2009-10-23 05:23

    回返,呵呵。有空记得去我那踩踩哦?

    [回复]

  3. #3 whitmine 回复 | 引用 Post:2009-10-23 10:11

    话说一说技术我就看不懂泥 :evil:

    [回复]

  4. #4 洗眼器 回复 | 引用 Post:2009-10-23 10:48

    Google 很强大!

    [回复]

  5. #5 bolo 回复 | 引用 Post:2009-10-23 21:00

    完全不懂了

    [回复]

  6. #6 一天一歌 回复 | 引用 Post:2009-10-25 01:55

    呵呵,SVN用我的双拼打出来是随你 :razz:

    [回复]

  7. #7 LAONB 回复 | 引用 Post:2009-10-25 10:23

    羡慕你每天对着黑白双色的命令行 :roll:
    这SVN是不是编程团队,每个人有权限更改,然后记录每个人改动过哪里。

    [回复]

  8. #8 aify 回复 | 引用 Post:2009-10-25 14:13

    学习了!不错!

    [回复]

  9. #9 simaopig 回复 | 引用 Post:2009-10-27 11:23

    @LAONB
    这个本来还有绿色,蓝色之类。

    不过为了截图方便,我把它换成 cshell了,这样就只有黑白两色了。。

    [回复]

发表评论

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)