详细说明svn分支与合并,以及实例
一,svn分支与合并有什么用? 作程序的,对svn在熟悉不过了,但对svn分支熟悉的,我想并不多。因为一般情况下,是用不着svn分支的,其实也没有那个必要。下面我例举几个需要用到svn分支的情况: ,比较大的项目。比较大的项目,一般情况下会分成几个阶段来完。好比什么五年计划。到了某个阶段时,我建立一个分支,当个备份。万一将来开发下个阶段东西的时候,出现致命错误的时候,我还能把这个分支拿出来接着用。 ,项目要开发新的东西,但是又不想和主干冲突,建立一个分支,单独做为一个开发分支。这样做也是为了责任明确。如果出了问题也好有所查证。 二,创建svn分支 在说创建分支前,关于svn的安装和配置,请参考linux svn安装和配置,不结合apache ,创建一个代码文件夹main [root@BlackGhost repos]# pwd
/home/zhangy/checkout/repos
[root@BlackGhost repos]# svn add ./main
A main
A main/test.php
[root@BlackGhost repos]# svn commit ./main -m "test"
Adding main
Adding main/test.php
Transmitting file data .
Committed revision . ,创建分支 [root@BlackGhost repos]# svn copy svn://127.0.0.1/repos/main svn://127.0.0.1/repos/branch -m "test" Committed revision . ,查看分支情况 [root@BlackGhost repos]# svn log -v ./branch/test.php
------------------------------------------------------------------------
r6 | zhangy | -- :: + (Sun, Oct ) | line
Changed paths:
A /branch (from /main:) test
------------------------------------------------------------------------
r5 | zhangy | -- :: + (Sun, Oct ) | line
Changed paths:
A /main
A /main/test.php test
------------------------------------------------------------------------ ,注间事项: a),创建分支,只能在同一个仓库内进行,跨仓库是不行的。会提示svn: No repository found in 'svn://127.0.0.1' b),创建分支时,注意加上注释,不然会报以下错误。 [root@BlackGhost repos]# svn cp svn://127.0.0.1/repos/main svn://127.0.0.1/repos/branch
svn: Could not use external editor to fetch log message; consider setting the $SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options
svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and no 'editor-cmd' run-time configuration option was found 三,合并分支 下面讲一个例子,来说明怎么合并分支。我觉得通过例子,最能让人学到东西了,我在我的博文一在强调这一点。 ,修改main中的文件提交到svn服务器端,这样main的代码就和branch分支的代码就不一样了。 ,把main文件中的文件同步到分支中branch中 [plain] view plaincopy [root@BlackGhost branch]# pwd //是否在分支的文件夹中
/home/zhangy/checkout/repos/branch
/**
把main的修改同步到branch分支中
如果是指定版本的可以svn merge -r 9:10 svn://127.0.0.1/repos/main
*/
[root@BlackGhost branch]# svn merge svn://127.0.0.1/repos/main
--- Merging r6 through r8 into '.': //更新到第8个版本
U test.php
[root@BlackGhost branch]# svn log -v test.php //查看test.php,从下面我们可以看出,分支版本还是没有变为什么呢?
------------------------------------------------------------------------
r6 | zhangy | -- :: + (Sun, Oct ) | line
Changed paths:
A /branch (from /main:) test
------------------------------------------------------------------------
r5 | zhangy | -- :: + (Sun, Oct ) | line
Changed paths:
A /main
A /main/test.php test
------------------------------------------------------------------------
[root@BlackGhost branch]# svn commit -m "test" //提交
Sending .
Sending test.php
Transmitting file data .
Committed revision .
[root@BlackGhost branch]# svn log -v test.php //是没因为没有提交,提交后会产生一个新的版本
------------------------------------------------------------------------
r9 | zhangy | -- :: + (Sun, Oct ) | line
Changed paths:
M /branch
M /branch/test.php test
------------------------------------------------------------------------
r6 | zhangy | -- :: + (Sun, Oct ) | line
Changed paths:
A /branch (from /main:) test
------------------------------------------------------------------------
r5 | zhangy | -- :: + (Sun, Oct ) | line
Changed paths:
A /main
A /main/test.php test
------------------------------------------------------------------------ 到这儿合并基本上就结束了。 ,上面说的是将主干的文件同步到分支中去,把分支的内容同步步主干也是一样的,倒过来就行了。 ,全并的时候,有可能会冲突的,看下面 [plain] view plaincopy [root@BlackGhost main]# svn merge svn://127.0.0.1/repos/branch
Conflict discovered in 'test.php'. //提示有冲突
Select: (p) postpone, (df) diff-full, (e) edit, //在这里让你选择处理方式
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: p
--- Merging r7 through r12 into 'test.php':
C test.php
Summary of conflicts:
Text conflicts: //虽然有冲突,但是还是可以同步了,也说明同步成功了。 --- /tmp/tempfile..tmp Sun Oct ::
+++ .svn/tmp/test.php.tmp Sun Oct ::
@@ -, +, @@
+<<<<<<< .working
+asdfadfadfadf
+
+=======
+asdfadfadfadf
+
+
+
+>>>>>>> .merge-right.r12

详细说明svn分支与合并,以及实例的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. SVN分支的合并和同步

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

  7. eclipse svn分支与合并操作

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

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

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

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

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

随机推荐

  1. gearman mysql持久化

    gearman 创建Mysql持久化队列的方式如下: 启动gearman,命令如下: gearmand命令: -b, –backlog=BACKLOG 连接请求队列的最大值 -d, –daemon D ...

  2. Django——admin组件

    Django提供了基于web的管理工具. Django自动管理工具是django.contrib的一部分.你可以在项目的settings.py中的INSTALLED_APPS看到它: # Applic ...

  3. android各种组件的监听器

    <一>Spinner(旋转按钮或下拉列表):设置监听器为:setOnItemSelectedListener 设置动画效果为:setOnTouchListener              ...

  4. 跟踪 twisted 里deferred 的Callback

    twisted 提供了 deferred 机制,而关键点就是回调.通过查看deferred 源码 (version 8.2.0)我们可以 看到 deferred的addCallback是怎么工作的,以 ...

  5. iOS UIFont 的学习与使用

    通常,我们使用字体 都是系统默认的字体. 有时候 从阅读体验,美观度 设计师都会考虑用一些 更高大尚的字体. 系统字体库 给英文 各种style的发挥空间很大,但是 中文则不然. 但是苹果 给使用中文 ...

  6. Java中finalize()用法

    Java中finalize()   垃圾回收器要回收对象的时候,首先要调用这个类的finalize方法(你可以 写程序验证这个结论),一般的纯Java编写的Class不需要重新覆盖这个方法,因为Obj ...

  7. 03_Hadoop简单介绍以及版本信息

    一.海量数据: 量:大.数目多,数据量到达PB.ZB级别,条目数到达几十亿条.百亿条 1)存储:分布式,集群的概念,管理(主节点.从节点),HDFS(HadoopDistributedFileSyst ...

  8. Mybatis一对多/多对多查询时只查出了一条数据

    问题描述: 如果三表(包括了关系表)级联查询,主表和明细表的主键都是id的话,明细表的多条数据只能查询出来第一条/最后一条数据. 三个表,权限表(Permission),权限组表(Permission ...

  9. INSPIRED启示录 读书笔记 - 第24章 平滑部署

    避免更新产品导致用户反感 毫无征兆地更新不必要的版本会令用户产生反感.不是所有用户都喜欢新版本的产品.用户产生反感主要有几个原因 1.事前没有收到更新通知,用户觉得措手不及 2.用户没时间学习.适应新 ...

  10. JAVAWeb学习总结(一)

    一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源( ...