Merge changes into a working copy.
-
merge SOURCE[@REV] [TARGET_WCPATH]
(the ‘sync’ merge)
-
merge [-c M[,N…] | -r N:M …] SOURCE[@REV] [TARGET_WCPATH]
(the ‘cherry-pick’ merge)
-
merge --reintegrate SOURCE[@REV] [TARGET_WCPATH]
(the ‘reintegrate’ merge)
-
merge SOURCE1[@N] SOURCE2[@M] [TARGET_WCPATH]
(the ‘2-URL’ merge)
有效选项:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
-c [--change] ARG : 在ARG版本(如同 -r ARG-1:ARG)作的修改
如果ARG为负数则等价于 -r ARG:ARG-1
-N [--non-recursive] : 过时;尝试 --depth=files 或 --depth=immediates
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
-q [--quiet] : 不打印信息,或只打印概要信息
--force : 强制操作运行
--dry-run : 尝试操作但没有修改
--diff3-cmd ARG : 使用 ARG 作为合并命令
--record-only : 只合并合并信息的差异
-x [--extensions] ARG : 缺省: “-u”。当 Subversion 调用外部比较程序时,ARG 直接传给它。但是当
Subversion 使用缺省的内置比较实现,或者正
显示追溯时, ARG 可以是:
-u (--unified):
输出三行统一上下文。
-b (--ignore-space-change):
忽略空白数量的修改。
-w (--ignore-all-space):
忽略所有的空白。
--ignore-eol-style:
忽略行尾样式的改变。 -p (--show-c-function):
在比较输出中显示 C 函数名称。
--ignore-ancestry : 合并时忽略原始信息
--accept ARG : 指定自动解决冲突动作
('postpone', 'working', 'base', 'mine-conflict',
'theirs-conflict', 'mine-full', 'theirs-full',
'edit', 'launch')
(shorthand: 'p', 'mc', 'tc', 'mf', 'tf', 'e', 'l')
--reintegrate : 合并分支回父分支
--allow-mixed-revisions : 允许合并到含有混合版本的工作副本.
不建议使用此选项!
请先执行 'svn update' 。
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
servers:global:http-library=serf
原文链接:
https://blog.51cto.com/gavin0/2129394
合并深度:1, Working copy(工作副本):即你当前的工作目录,一般默认为这个选项;2,Recursively(递归):即你选择的目录的版本库,包括了其下面的子文件,子文件夹,包括子文件夹里面的内容;3, Direct children(直接子节点):即你选择的目录下面的文件,文件夹,但是不包括文件夹里面的子文件,子文件夹;4,Files in a folder(仅文件子节点):即你选择的
# # Simplified Chinese translation for subversion package # This file is distributed under the same license as the subversion package. # # Update to new pot: # msgmerge --update zh_CN.po subversi...
3.选择e进行手动编辑冲突文件,根据上面冲突提示,进行编辑即可,保存更改,又出现刚才的选项。添加--dry-run参数仅仅是对merge的内容进行测试,不进行实际merge操作,检查是否由冲突,冲突发生在哪个文件;对merge的svn -r 19906进行测试,不进行实际merge操作,是否与本地文件存在冲突;由上图可知因为merge的trunk的代码与本地代码存在冲突,选择df,显示冲突;5.自此,整个merge和解决冲突结束,下面查看修改状态,提交代码;2.edit,对冲突内容进行编辑,解决冲突;
merge: Merge changes into a working copy.usage: 1. merge SOURCE[@REV] [TARGET_WCPATH](the 'sync' merge)
merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH](the 'cherry-pick' merge)
merge --...
从SVN上DOWN下来一个主分支,在此分支上面分离出一个开发分支,并重新命名。
开发过程中,由于开发速度较快,在往主分支合并的时候,假设10个类被提交到分支上,但是主分支只要提交前5个类(进度管理),后面5个直接在版本合并时没有勾选,并在本地的主分支进行删除(这可能就是问题的所在)。
2、后面要合并第6个类,结果此类已经在之前开发分支版本提交过,导致主
merge是干啥的呢?
使用过SVN都知道SVN其实就是一个代码管理的软件,使用它可以很好的解决代码冲突。他可以针对一个文件产生不同的版本,每一个版本都对应自身的改动。因为它记录了每一个文件的修改变化(可以理解为文件之间的不同点diff),这对于我们的开发,理解有很好的作用。
简而言之就是你想把某一版改动合到另一个branch上的时候,记住你合过来的改动只是每版...
1、其中一种命令行合并方式,svn merge -r N:M url ./
使用案例:场景:将branches下相应项目的修改合并到主干。
方式:当前位于trunk下相应工程的目录,在该目录下执行以上命令,意义“将分支下该对应目录中N-M的修改,应用到当前目录”,其中,url:为branches下该相应目录。
merge [-c M[,N…] | -r N:M …] SOURCE[@REV] [WCPAT
版本管理中有一个很重要的概念,就是主干和分支。对应于主干和分支之间代码的合并操作,就会用到svn merge。
1. merge SOURCE[@REV] [TARGET_WCPATH]
cherry-pick reintegrate 2-URL
-r -c 版本区间
svn merge source target
Working copy(工作副本):即你当前的工作目录,一般默认为这个选项;Recursively(递归):即你选择的目录的版本库,包括了其下面的子文件,子文件夹,包括子文件夹里面的内容;Direct children(直接子节点):即你选择的目录下面的文件,文件夹,但是不包括文件夹里面的子文件,子文件夹;Files in a folder(仅文件子节点):即你选择的目录下面的文件,但不包括文件夹,当然不包括的文件夹下面的所有内容也都不纳入合并范围;Only a folder(仅此项)