首页 > soft > svn 创建分支与合并

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里共享的。大家可以下载下来看,更方便,也更清晰。

  1. Louis Han 十 23rd, 2009 @ 00:45 | #1

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

  2. 记忆 十 23rd, 2009 @ 05:23 | #2

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

  3. whitmine 十 23rd, 2009 @ 10:11 | #3

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

  4. 洗眼器 十 23rd, 2009 @ 10:48 | #4

    Google 很强大!

  5. bolo 十 23rd, 2009 @ 21:00 | #5

    完全不懂了

  6. 一天一歌 十 25th, 2009 @ 01:55 | #6

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

  7. LAONB 十 25th, 2009 @ 10:23 | #7

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

  8. aify 十 25th, 2009 @ 14:13 | #8

    学习了!不错!

  9. simaopig 十 27th, 2009 @ 11:23 | #9

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

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

评论提交中, 请稍候...

留言

可以使用的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks