本节和大家学习一下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使用说明完毕,请关注本节其他相关报道。
【编辑推荐】