SVN 更改无合并冲突

问题描述 投票:0回答:1

假设我有一个SVN仓库,有两个分支,并且两个分支中都存在某个文件,并且相差一行。有没有办法允许用户修改任一分支上的该行并合并到另一个分支,而 SVN 不会标记合并冲突?换句话说,有没有办法告诉 SVN 将这些不同的行视为相同的行?

举个例子,假设我有一个名为“B”的分支,其中有一个文件

foo.txt
,其内容如下:

1
2
apple
4

从这个分支我创建一个名为“C”的分支:

svn   cp   ^/branches/B   ^/branches/C

然后我将

branches/C/foo.txt
修改为以下内容(然后提交):

1
2
banana
4

我能做些什么(除了修改文件的内容)来允许用户在任一分支上修改

foo.txt
并合并到另一个分支,而不会 SVN 标记合并冲突?

我还将指定:

  • 目的是能够在两个方向上合并。仅仅能够从 B 合并到 C,或者仅从 C 合并到 B 是不够的。
  • 我已经尝试过仅记录合并。
svn merge
1个回答
0
投票

Subversion 将报告冲突,因为存在存在冲突。但是,您可以使用 Subversion 的自动冲突解决来指定接受哪个版本。要从 C 合并到 B,你可以这样做:

# we are on B
svn merge --accept theirs-conflict ^/branches/C . 

这将使用 B 中的内容来解决所有冲突。要限制为一个特定文件(并手动解决所有其他冲突),您可以执行以下操作:

# we are on B
svn merge --accept postpone ^/branches/C . 
svn resolve --accept theirs-conflict foo.txt

或者使用樱桃选择合并:

# we are on B and know only foo.txt was changed in r123
svn merge -c 123 --accept theirs-conflict ^/branches/C . 

另请参阅

高级合并
中有关--accept的文档,并且可以在此处找到可能的值。

© www.soinside.com 2019 - 2024. All rights reserved.