专家课堂 SVN使用说明详解

开发 项目管理
本文和大家简单介绍一下SVN使用说明,主要对分支与合并问题的讲解,希望通过本文的讲解大家能够掌握SVN使用方法。

本节和大家学习一下SVN使用说明,本节内容主要针对初学者,在这里和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西,欢迎打击一起来学习SVN使用说明方面的知识。下面是具体介绍。

分支与合并
分支就是在另外一个地方管理代码的版本,而不影响主线(trunk)的代码。分支的原因有很多,***次使用svn都希望建立一个分支,然后在自己的分支上工作,相当于自己的独立的工作空间,这种工作方式没有错,但是svn支持并不是很好,需要编写comment的时候记录下每次合并代码的版本号,因此我认为目前分支***的实践是为某个工作目的创建一个分支,功能实现以后立刻在trunk中合并这个内容,分支的使命完成后就可以删除了。
SVN使用说明介绍中分支其实很简单,就是copy一下
kkmao@Loongson:~/expe/workingcopy$svncopyfile:///home/kkmao/expe/repos/trunkfile:///home/kkmao/expe/repos/branches/hi提交后的修订版为4。
现在你可以选择把那个hi分支checkout出来修改,这样子很简单直接,也可以把本地switch过去,省一点网络带宽
kkmao@Loongson:~/expe/workingcopy$svninfo|grepURL
地址(URL):file:///home/kkmao/expe/repos/trunk
kkmao@Loongson:~/expe/workingcopy$svnswitchfile:///home/kkmao/expe/repos/branches/hi于修订版4。
kkmao@Loongson:~/expe/workingcopy$svninfo|grepURL
地址(URL):file:///home/kkmao/expe/repos/branches/hi
这个时候你本地的workingcopy已经和新的URL发生联系了,所有的commit都朝向新的URL
ok现在我开始修改,就是把hello换成hi。
kkmao@Loongson:~/expe/workingcopy$cathello
hiword.
Iamkkmao,whoareyou.
但是我发现我错了,其实我是想加一行hi,我觉得我改了太多了太乱了,索性恢复到我checkout时候的版本kkmao@Loongson:~/expe/workingcopy$svnreverthello
已恢复“hello”
我加了一行以后重新commit
kkmao@Loongson:~/expe/workingcopy$cathello
helloworld.
hiworld,heihei~~~
Iamkkmao,whoareyou.
kkmao@Loongson:~/expe/workingcopy$svncihello
正在发送hello
传输文件数据.
提交后的修订版为5。这个时候我转回去,开始合并
kkmao@Loongson:~/expe/workingcopy$svnswitchfile:///home/kkmao/expe/repos/trunk
Uhello更新至修订版5。
kkmao@Loongson:~/expe/workingcopy$cathello
helloword.
Iamkkmao,whoareyou.
当然我不急于合并,我添加一个文件模拟主线仍然进行着有序的开发
kkmao@Loongson:~/expe/workingcopy$vimaccessory
kkmao@Loongson:~/expe/workingcopy$svnaddaccessory
Aaccessory
kkmao@Loongson:~/expe/workingcopy$svnci-m"addaccessory"
新增accessory
传输文件数据.
提交后的修订版为6。
OK,开始合并
合并的过程一开始比较难理解,其实简单的说就是把分支上面两个版本之间所作的修改作为一个patch,然后应用到你的本地上面
记住你比较的是分支的两个版本,比如说分支开发是从r10到r20,执行svnmerge的效果相当于把r20到r10两个版本树做一个diff-urN生成一个patch,然后执行patch-p1命令。问题是怎么找出这两个版本呢?SVN使用说明接下来为大家介绍。
首先我们找出我们是从那个版本开始分支的
kkmao@Loongson:~/expe/workingcopy$svnlog--stop-on-copyfile:///home/kkmao/expe/repos/branches/hi
------------------------------------------------------------------------
r5|kkmao|2007-01-0211:52:56+0800(二,021月2007)|2lines
addhi
------------------------------------------------------------------------
r4|kkmao|2007-01-0211:43:08+0800(二,021月2007)|4lines
hellotohi
------------------------------------------------------------------------
也就是说我们从r4开始我们的分支,到r5完成,因此我们执行
kkmao@Loongson:~/expe/workingcopy$svnmerge-r4:5file:///home/kkmao/expe/repos/branches/hi
Uhello
kkmao@Loongson:~/expe/workingcopy$cathello
helloworld.
hiworld,heihei~~~
Iamkkmao,whoareyou.
完成了合并,注意所有的更改都在本地,应该提交一次,并且要记录合并的版本
kkmao@Loongson:~/expe/workingcopy$svnci-m"mergefile:///home/kkmao/expe/repos/branches/hi-r4:5"
正在发送hello
传输文件数据.
提交后的修订版为7。如果hi分支仍然继续开发,请注意下次合并应该从r5开始,避免合并重复的内容s。本节讲解SVN使用说明完毕,请关注本节其他相关报道。

【编辑推荐】

  1. SVN使用手册之入门篇
  2. Windows下SVN使用手册简明介绍
  3. ApacheSVN服务器安装指导手册
  4. Windows操作系统中SVN使用手册详解
  5. SVN服务器安装指导手册
责任编辑:佚名
相关推荐

2010-05-27 14:02:04

SVN使用说明

2010-05-27 14:28:41

TortoiseSVN

2010-05-20 19:01:03

Eclipse使用SV

2010-05-27 13:48:30

SVN使用说明

2009-12-21 10:10:25

Oracle产品

2010-05-20 16:52:31

ZendStudio客

2010-05-28 17:00:24

SVN分支与合并

2010-05-27 14:48:45

SVN命令行使用说明

2010-05-31 16:29:22

SVN权限配置

2010-05-27 09:41:05

SVN冲突

2009-12-31 15:59:13

ADO.NET方案

2013-10-31 10:59:41

Clouda使用

2009-12-15 15:13:07

.NET Framew

2009-12-24 16:20:43

WPF Tooltip

2011-03-15 10:00:01

NetfilterIPTables

2010-06-03 13:49:04

Sendmail 配置

2009-12-28 11:34:22

WPF处理消息

2019-09-29 14:33:30

Redis集合元素

2010-06-01 12:49:04

SVN分支模式

2010-05-28 19:35:33

Myeclipse下S
点赞
收藏

51CTO技术栈公众号