在使用svn的时候我们往往有这样的需求。我们修改某些代码,因为对某项技术不是非常的熟悉,担心自己当前的修改(或者叫测试)会影响到服务器中版本库代码的崩溃等。传统做法我们会手动复制一份代码,然后修改如果修改成功则提交到服务器版本库,否则直接删除。 
     这样做一定程度上满足了要求,但一个问题是在你进行测试修改的时候版本库可能已经更新了n个版本了。那当你的实验完成后再提交到版本库区的时候就可能会有非常多的冲突。而且在你实验的过程中可能也会有很多的中间结果需要保存,如果无法提交,那一旦自己机器出现任何问题都可能会造成之前的努力前功尽废。 
     于是svn里面就有了分支这样的一个概念,不单是解决这个问题。还有满足了代码访问权限的控制,以及开发小组的再划分。在svn中,我们要做一些测试性的开发。只需要主干文件夹上右键: 

就能在svn服务器上建立一个分支了,然后我们需要将该分支的代码checkout出来,checkout的url只到https://127.0.0.1/svn/OnlyForTest/branches/xm_20110119
     相当于在本地复制了一份代码到branches文件夹的xm_20110119文件夹,然后开发的时候我们是针对xm_20110119下的代码做的测试开发。其中的commit和update和没有建立分支的情况一样。不同的是你commit和upadate针对的都是https://127.0.0.1/svn/OnlyForTest/branches/xm_20110119 这一分支所做的任何修改都不会影响到其他分支。 
          当你修改完之后,想要将修改的效果体现到主干分支的时候我们要执行的操作是,在主干文件夹上右键,TortoiseSVN---Merge… 

此时你本地的主干文件夹中的代码就得到了你分支中进行修改后的效果,但只是你本地的进行了变化,要想真正的体现到所有的用户,我们需要在主干文件夹上再进行commit操作。 
     另一个需求是,我们在分支上所做的修改需要比较长的一段时间才能完成,在这过程中主干中的代码可能更新了无数个版本了,当我们代码修改完成时候与主干上的代码差别可能就会非常大,就可能会造成冲突的情况。这种情况怎么处理呢? 
    svn还提供了一个将主干文件夹(本地)代码合并到分支上来的功能,注意合并过来的只是本地的主干文件夹的代码,因此要确保主干文件夹上的代码就最新,即我们需要经常的进行upadate操作。操作是在分支根目录上右键: 

另:对于分支如果是个人开发的测试,基本上不用commit的,除非需要备份或者保存一些中间结果。否则,只需要在修改完成的时候合并到主干代码文件夹,然后由主干进行统一commit就可以了.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

liunx 下SVN合并

假设分支名称为:projectA/20110826,现在要合并到trunk上,步骤如下:
1)查询该分支创建时revision(在输出的最后一行,比如:1447);
svn log –verbose –stop-on-copy http://192.168.x.x/svnrepos/project/branches/projectA/20110826
2)可以先演练一遍,看看有哪些冲突(HEAD表示trunk中的最新的revision);
svn merge –dry-run -r1447:HEAD http://192.168.x.x/svnrepos/project/branches/projectA/20110826
3)觉得没什么大问题,可以开始正式合并了;
svn merge -r1447:HEAD http://192.168.x.x/svnrepos/project/branches/projectA/20110826
4)解决冲突,然后提交,合并完成。
svn commit -m “merge the branch projectA/20110826 to the trunk” .

svn 分支与合并的使用的更多相关文章

  1. 详细说明svn分支与合并---命令行

    一,svn分支与合并有什么用? 作程序的,对svn在熟悉不过了,但对svn分支熟悉的,我想并不多.因为一般情况下,是用不着svn分支的,其实也没有那个必要.下面我例举几个需要用到svn分支的情况: 1 ...

  2. SVN 分支及合并的介绍和实践---命令行

    写在前面 一些相关的概念和原理 进行分支开发的最佳实践 合并的分类 在 Eclipse 中进行合并操作 相关资源 写在前面 本文是由演讲整理而来的,介绍了 SVN 分支与合并的概念.流程和一些实际操作 ...

  3. SVN分支与合并【超详细的图文教程】(转载)

    SVN分支与合并 一. 分支与合并的概念 二. SVN分支的意义 三. 如何创建分支与合并分支 一.分支与合并的概念: 分支:版本控制系统的一个特性是能够把各种修改分离出来放在开发品的一个分割线上.这 ...

  4. 详细说明svn分支与合并,以及实例

    详细说明svn分支与合并,以及实例 一,svn分支与合并有什么用? 作程序的,对svn在熟悉不过了,但对svn分支熟悉的,我想并不多.因为一般情况下,是用不着svn分支的,其实也没有那个必要.下面我例 ...

  5. 实例讲解SVN分支和合并问题(转)

    本节向大家简单描述一下SVN分支和合并方面的知识,在学习SVN的过程中SVN分支和合并时经常遇到的问题,在这里和大家分享一下,希望本文对大家有用. 关于主线同SVN分支合并的概念及如何使用的误区此问题 ...

  6. SVN 分支代码合并到主线

    SVN 分支代码合并到主线 步骤一安装TortoiseSVN 客户端,在本地 checkout主线代码 步骤二:创建branches分支 步骤三.branches修改提交代码 步骤四:分支代码合并到主 ...

  7. eclipse svn分支与合并操作

    以前做项目的时候没有用过svn的分支合并操作,今天用到了,刚开始还真不会啊.最后查了下就是这么的方便.专门记录下来. 原文来自:http://blog.csdn.net/lisq037/article ...

  8. (转)myeclipse插件—SVN分支与合并详解【图】

    svn作为版本控制软件被广泛用于众多公司的开发团队中,最多的场景就是一个项目上传svn后,一个组内的小伙伴在上边提交和更新代码以及解决冲突,其实这只是发挥了svn的很小的一部分功能. 先稍微介绍一下s ...

  9. SVN分支的合并和同步

    使用svn几年了,一直对分支和合并敬而远之,一来是因为分支的管理不该我操心,二来即使涉及到分支的管理,也不敢贸然使用合并功能,生怕合并出了问题对团队造成不良影响,最主要的原因是,自己对分支的目的和合并 ...

  10. myeclipse使用SVN分支与合并详解

    此博文主要内容来源地址:https://blog.csdn.net/liuyifeng1920/article/details/53118183,感谢原创博主: 先介绍一下svn的两种开发和发布的规范 ...

随机推荐

  1. setTimeOut(),和setInterVal()调用函数加不加括号!!!

    直接在ready中调用其他方法,会提示缺少对象的错误,解决方法如下: 方法1. 应用jQuery的扩展可以解决这个问题. $(document).ready(function(){ $.extend( ...

  2. Java命名:

    如果没有public类,就和遵循文件名命名规则: 1.一个.java文件只能有1个public class(暗示可以没有) 2.如果有public class,那么文件名必须与修饰符为public的类 ...

  3. 12.python中的列表

    先看列表是如何创建的: a = ['scolia', 123] b = list('scolia',123) 同样有两种创建方式,但一般用第一种. 列表和元祖最大的不同就是列表是可以修改的. 老规矩, ...

  4. 多点触摸画板(MultiTouchCanvas)

    这是个简单的支持多点触摸的画板控件, 绘制功能基于WPF InkCanvas,也是我drawTool系列文章的开篇. 阅读该文章后可能产生一些问题: 1. 如果对生成的笔迹对象进行控制 如果要对生成的 ...

  5. char const*, char*const, const char *const的区别

    C++标准规定,const关键字放在类型或变量名之前等价的.所以,const char*和 char const*是一样的. const char*   //常量指针---指向常量的指针----指针指 ...

  6. "Programming"和"Programming"是同一个"Programming"吗?

    什么意思? C语言没有专门的字符串类型,但是,它同样可以处理字符串.本文不是讨论字符串的使用,而是讨论C字符串之间的关系.如题,在C语言代码中,如果定义#define STR = "Prog ...

  7. 内核堆分配函数brk()源码分析

    Evernote公开链接:http://www.evernote.com/shard/s133/sh/5b8d3b26-0e53-4c61-aa43-66f6e87bbcb7/a44096dd557f ...

  8. hdu 4857 逃生

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4857 逃生 Description 糟糕的事情发生啦,现在大家都忙着逃命.但是逃命的通道很窄,大家只能 ...

  9. Windows Phone8.1 SDK中的新控件

    前言      WP8.1对开发者的影响要远大于对用户的影响.这篇博客就来一起看看哪些WP8.0中的控件被移除或替换,这些控件的介绍在MSDN上都非常的详细,所以这里只给出一些简单的介绍,来对比8.1 ...

  10. iOS学习之UINavigationController

    一.UINavigationController      1.UINavigationController:导航控制器,是iOS中最常用的多视图控制器之一,用它来管理多个视图控制器.可以称为是管理控 ...