svn之merge

1. merge SOURCE[@REV] [TARGET_WCPATH]   (the 'sync' merge)

This form is called a 'sync' (or 'catch-up') merge:

svn merge SOURCE[@REV] [TARGET_WCPATH]

A sync merge is used to fetch all the latest changes made on a parent branch. In other words, the target branch has originally been created by copying the source branch, and any changes committed on the source branch since branching are applied to the target branch. This uses merge tracking to skip all those revisions that have already been merged, so a sync merge can be repeated periodically to stay up-to-date with the source branch.

  SOURCE specifies the branch from where the changes will be pulled, and TARGET_WCPATH specifies a working copy of the target branch to which the changes will be applied. Normally SOURCE and TARGET_WCPATH should each correspond to the root of a branch. (If you want to merge only a subtree, then the subtree path must be included in both SOURCE and TARGET_WCPATH; this is discouraged, to avoid subtree mergeinfo.)

TARGET_WCPATH is a working copy path; if omitted, '.' is assumed.

  

  svn merge ^/trunk

2. merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]  (the 'cherry-pick' merge)

  This form is called a 'cherry-pick' merge:

svn merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]

A cherry-pick merge is used to merge specific revisions (or revision ranges) from one branch to another. By default, this uses merge tracking to automatically skip any revisions that have already been merged to the target; you can use the --ignore-ancestry option to disable such skipping.

  SOURCE is usually a URL. The optional '@REV' specifies only the peg revision of the URL and does not affect the merge range; if REV is not specified, the HEAD revision is assumed. If SOURCE is a working copy path, the corresponding URL of the path is used, and the default value of 'REV' is the base revision (usually the revision last updated to).

TARGET_WCPATH is a working copy path; if omitted, '.' is assumed.

  

  svn merge -c50 ^/trunk

  svn merge -c50,54,60 -r65:68 ^/trunk

3. merge --reintegrate SOURCE[@REV] [TARGET_WCPATH]  (the 'reintegrate' merge)

  This form is called a 'reintegrate merge':

         svn merge --reintegrate SOURCE[@REV] [TARGET_WCPATH]

In a reintegrate merge, an (e.g. feature) branch is merged back to its originating branch. In other words, the source branch has originally been created by copying the target branch, development has concluded on the source branch and it should now be merged back into the target branch.

SOURCE is the URL of a branch to be merged back. If REV is specified, it is used as the peg revision for SOURCE; if REV is not specified, the HEAD revision is assumed.

TARGET_WCPATH is a working copy of the branch the changes will be applied to.

  

  svn merge --reintegrate ^/feature

  After the reintegrate merge, the feature branch cannot be synced to the trunk again without merge conflicts. If further work must be done on the feature branch, it should be deleted and then re-created.

4. merge SOURCE1[@N] SOURCE2[@M] [TARGET_WCPATH]

(the '2-URL' merge)

  This form is called a '2-URL merge':

         svn merge SOURCE1[@N] SOURCE2[@M] [TARGET_WCPATH]

Two source URLs are specified, together with two revisions N and M. The two sources are compared at the specified revisions, and the difference is applied to TARGET_WCPATH, which is a path to a working copy of another branch. The three branches involved can be completely unrelated.

You should use this merge variant only if the other variants do not apply to your situation, as this variant can be quite complex to master.

  If TARGET_WCPATH is omitted, a default value of '.' is assumed.However, in the special case where both sources refer to a file node with the same basename and a similarly named file is also found within '.', the differences will be applied to that local file.  The source revisions default to HEAD if omitted.

The sources can also be specified as working copy paths, in which case the URLs of the merge sources are derived from the working copies.

Merge Tracking】  

- Merge Tracking -

  Subversion uses the svn:mergeinfo property to track merge history. This property is considered at the start of a merge to determine what to merge and it is updated at the conclusion of the merge to describe the merge that took place. Mergeinfo is used only if the two sources are on the same line of history -- if the first source is an ancestor of the second, or vice-versa (i.e. if one has originally been created by copying the other). This is verified and enforced when using sync merges and reintegrate merges.

  The --ignore-ancestry option prevents merge tracking and thus ignores mergeinfo, neither considering it nor recording it.

- Merging from foreign repositories -

  Subversion does support merging from foreign repositories. While all merge source URLs must point to the same repository, the merge target working copy may come from a different repository than the source. However, there are some caveats. Most notably, copies made in the merge source will be transformed into plain additions in the merge target. Also, merge-tracking is not supported for merges from foreign repositories.

svn之merge的更多相关文章

  1. SVN SVN合并(Merge)与拉取分支(Branch/tag)操作简介

    SVN合并(Merge)与拉取分支(Branch/tag)操作简介 合并(Merge) 例子:把对feature_branch\project_name_v3.3.7_branch的修改合并到deve ...

  2. svn resolve/merge

    svn merge http://svn.a.com/branches/20150129_168954_sales-impr_1 svn resolve --accept working web/sr ...

  3. svn的merge使用例子

    先说说什么是branch.按照Subversion的说法,一个branch是某个development line(通常是主线也即trunk)的一个拷贝,见下图: branch存在的意义在于,在不干扰t ...

  4. SVN代码merge

    如何merge代码?建议用命令搞merge,客户端图形界面不是很给力.SVN 1.5以上版本,可以使用SVN的自动合并:将主干合并到分支:进入分支目录,执行命令: svn merge http://s ...

  5. SVN合并(merge)的使用

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

  6. SVN Cannot merge into a working copy that has local modifications

    我尝试了 主支,分支都提交,但是依然无法合并. 最终,我在服务器上将分支删除,然后主支在拷贝过去. 一,打开服务器资源 二,删除分支 三,拷贝主支到分支 四,刷新分支,就能看到了. 然后在分支项目中, ...

  7. svn上想回滚代码怎么办?——svn merge 命令

    小博客断更了很久,最近想接着尝试建立写作的习惯,把自己工作生活遇到的有用知识沉淀下来.尽管微信公共账号比较火,但个人觉得这种不能用搜索引擎检索的东西完全就是历史的倒退,就像 RSS 这种提高信息传播效 ...

  8. svn merge 回滚

    聊一聊 svn merge 命令. svn 是啥就不用介绍了吧,谁用谁知道.有了 svn,开发者只要把代码提交上去,无论山崩地裂.电脑进水.硬盘格式化,哪怕换了一台电脑,都能随时把代码找回来.不过从自 ...

  9. SVN用法(merge,branch,switch)

    SVN merge命令用法 使用svn的merge命令,把一个版本的变化合并到另一个版本.我使用的tortoise,在当前的工作目录点击右键,选择merge,在from框输入源url,在revisio ...

随机推荐

  1. 关于15桥梁课程1&2的笔记以及待做事项的梳理

    1.指针所占用的空间是固定的 2.void *malloc(sizeof(int)); (这玩意耗时间,老师说通过内存池解决) free(p);free(p);   两次free()报错,正确的做法: ...

  2. 在windows环境初步了解tuxedo

    最近换了一份工作,新公司使用tuxedo来简化应用的开发,而我参加工作这么多年,虽说略懂c++的开发,但是也没有用过tuxedo这种古老的东西.既然没有接触过,那就学学吧.先描述一下道路的曲折性吧. ...

  3. jQuery使用prop设置checkbox全选、反选

    $(function(){     var checkbox = $("input[type='checkbox']");     //全选     $('#select-all' ...

  4. BZOJ3632: 外太空旅行

    BZOJ1547: 周末晚会 https://lydsy.com/JudgeOnline/problem.php?id=1547 分析: 对于一个串旋转若干次会回到本身,旋转次数即是同构个数,这个东西 ...

  5. iOS10修改电池状态栏的方法

  6. Nginx 反向代理与负载均衡详解

    序言 Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在Nginx 配置详解中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细. Ngin ...

  7. Tornado服务端基本的配置文件(Python)

    web_set = { # -------一般设置-------- 'debug': True, 'port': 8836, 'autoreload': True, 'ui_modules': {}, ...

  8. vba打开excel文件遍历sheet的名字和指定单元格的值

    今天项目上有个应用,获取指定Excel文件下的所有sheet的名称以及当前sheet中指定单元格的值,并把他们写到固定的sheet中去,看了下,文件比较多,而且每个文件sheet的个数比较多,也不一样 ...

  9. QLCDNumber设置背景色和显示数字颜色【转载】

    http://www.qtcn.org/bbs/read-htm-tid-55176.html //LCD时间显示    QLCDNumber *m_pLcdTime = new QLCDNumber ...

  10. 几种经典的hash算法

    计算理论中,没有Hash函数的说法,只有单向函数的说法.所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数据.用“人 类”的语言描述单向函数就是:如果某个函数在给定输入的时候,很 ...