十二、SVN 分支
SVN 分支
Branch 选项会给开发者创建出另外一条线路。当有人希望开发进程分开成两条不同的线路时,这个选项会非常有用。我们先假设你已经发布了一个产品的 1.0 版本,你可能想创建一个新的分支,这样就可以不干扰到 1.0 版本的bug修复的同时,又可以开发2.0版本。
在这一节,我们将看到如何创建,穿过和合并分支。Jerry 因为代码冲突的事情不开心,所以他决定创建一个新的私有分支。
[jerry@CentOS project_repo]$ ls
[jerry@CentOS project_repo]$ svn copy trunk branches/jerry_branch
[jerry@CentOS project_repo]$ svn status
[jerry@CentOS project_repo]$ svn commit -m "Jerry's private branch"
现在 Jerry 在自己的分支下开始工作。他给序列添加了 sort 选项。Jerry 修改后的代码如下:
[jerry@CentOS project_repo]$ cd branches/jerry_branch/
[jerry@CentOS jerry_branch]$ cat array.c
Jerry 编译并且测试了他的代码,准备提交他的更改。
[jerry@CentOS jerry_branch]$ make array
[jerry@CentOS jerry_branch]$ ./array
[jerry@CentOS jerry_branch]$ svn status
[jerry@CentOS jerry_branch]$ svn commit -m "Added sort operation"
同时,越过主干,Tom 决定实现 search 选项。Tom 添加了 search 选项而添加代码,他的代码如下:
[tom@CentOS trunk]$ svn diff
[tom@CentOS trunk]$ svn status
[tom@CentOS trunk]$ svn commit -m "Added search operation"
但是 Tom 好奇 Jerry 在他自己的私有分支中干了什么:
[tom@CentOS trunk]$ cd ../branches/
[tom@CentOS branches]$ svn up
[tom@CentOS branches]$ svn log
通过查看 Subversion 的 log 信息,Tom 发现 Jerry 依赖 ‘sort’ 选项。Tom 决定增添用折半查找,期望数据总是根据种类进行分类。但是如果用户提供的数据是没有进行分类呢?在那种情况下,折半查找将会失效。所以他决定接着 Jerry 的代码,在搜索选项前先进性分类。所以他告诉 Subversion 合并 Jerry 的分支到主干中去。
[tom@CentOS trunk]$ pwd
[tom@CentOS trunk]$ svn merge ../branches/jerry_branch/
在融合后,array.c 会看上去是这个样子:
[tom@CentOS trunk]$ cat array.c
经过编译和测试后,Tom 提交了他的更改到仓库。
[tom@CentOS trunk]$ make array
[tom@CentOS trunk]$ ./array
[tom@CentOS trunk]$ svn commit -m "Merge changes from Jerry's code"
评论区