首页
登录 | 注册

svn 创建分支与合并

svn 创建分支与合并
2010-11-03 10:54

平时工作都是用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查看最新版本

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

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

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

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

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

svn 合并分支:

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

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

svn merge

svn 代码冲突的解决:

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

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

冲突产生的多余文件

svn resolved 冲突的文件名

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

svn resolved

扩展阅读:

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

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


相关文章

  • Git命令之git branch-a
    Git命令之git branch By Harrison Feng 分支(branch)的概念 我们在学习git branch之前,首先要理解分支(branch)的概念.Git 中的分支,其实本质上仅仅是个指向 commit 对象的可变指针 ...
  • Google Inception Net,ILSVRC 2014比赛第一名.控制计算量.参数量,分类性能非常好.V1,top-5错误率6.67%,22层,15亿次浮点运算,500万参数(AlexNet 6000万).V1降低参数量目的,参数 ...
  •     最近经常使用svn进行代码管理,这些命令老是记不住,得经常上网查,终于找了一个linux下svn命令使用大全:1.将文件checkout到本地目录 svn checkout path(path是服务器 上的目录)例如:svn che ...
  • 一.CentOS安装TortoiseSVN(转载) yum install -y subversion   二.SVN客户端命令   1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录)  例 ...
  • subversion for linux的安装(SVN+apache+linux)
          1.  软件环境 1. 版本 软件 版本 说明 Linux redhat 2.6.9-5.EL  APR APR-1.2.12 Apache可移植运行库 APR-util APR-util-1.2.12  Apache http ...
  • 创建读取Microsoft Word 文件强大的.NET控件Essential DocIO
    Essential DocIO是一款强大的.NET控件,可用于读取Microsoft Word 文件,使你的应用程序可以很容易地创建丰富的Word文档,支持多种像Office word一样的操作,可以导出为多种文件格式,对文档进行格式化等, ...

2020 unjeep.com webmaster#unjeep.com
12 q. 0.013 s.
京ICP备10005923号