【问题标题】:Cannot get rid of svn merge conflicts无法摆脱 svn 合并冲突
【发布时间】:2020-03-07 16:46:55
【问题描述】:

我们有一个主要项目的分支,我们不断合并到主干中。

不同的开发人员正在挑选他们自己的开发来分别合并,以便他们可以对应特定的 JIRA 问题。

我们不时在主干根目录中使用以下命令来找出尚未合并的内容:

svn merge --dry-run svn://svnhost/repo/app/branch

通常如果所有内容都已合并,则不会显示任何输出。

但是,这现在给我们一个消息,说“解决所有冲突,重新运行合并以应用剩余的未合并修订”。

我尝试合并所有显示为冲突的内容并解决这些冲突,但它们不断出现,但修订号不同。

这是上述命令的完整输出(目录和文件已重命名):

--- Merging r43608 through r43615 into 'directory1':
   C directory1/file1
C    directory1/file2
C    directory1/file3
--- Merging r43609 through r43615 into 'directory2':
   C directory2/file1
C    directory2/file2
C    directory2/file3
--- Merging r43605 through r43615 into 'directory3':
C    directory3/file1
C    directory3/file2
   C directory3/file3
   C directory3/file4
   C directory3/file5
   C directory3/file6
--- Merging r43603 through r43615 into 'directory4':
C    directory4/file1
C    directory4/file2
   C directory4/file3
--- Merging r43603 through r43615 into 'directory5':
C    directory5/file1
C    directory5/file2
C    directory5/file3
   C directory5/file4
U    directory5/file5
C    directory5/file6
   C directory5/file7
   C directory5/file8
   C directory5/file9
C    directory5/file10
   C directory5/file11
 G   directory5
--- Merging r43603 through r43615 into 'directory6':
U    directory6/file1
C    directory6/file2
   C directory6/file3
   C directory6/file4
C    directory6/file5
--- Merging r43517 through r43615 into 'directory7':
   C directory7/file1
   C directory7/file2
   A directory7/file3
   C directory7/file4
   A directory7/file5
--- Merging r43607 through r43615 into 'directory8/file1':
 G   directory8/file1
--- Merging r43534 through r43615 into 'directory9':
C    directory9/file1
   C directory9/file2
   C directory9/file3
   C directory9/file4
   C directory9/file5
   C directory9/file6
   C directory9/file7
   C directory9/file8
   C directory9/file9
   C directory9/file10
   A directory9/file11
   C directory9/file12
   C directory9/file13
   A directory9/file14
   C directory9/file15
   C directory9/file16
C    directory9/file17
   C directory9/file18
   C directory9/file19
U    directory9/file20
   C directory9/file21
C    directory9/file22
   C directory9/file23
C    directory9/file24
C    directory9/file25
   C directory9/file26
   C directory9/file27
   C directory9/file28
   C directory9/file29
   C directory9/file30
C    directory9/file31
C    directory9/file32
 G   directory9
--- Merging r43517 through r43615 into 'directory10/f':
C    directory10/f/file1
--- Merging r43517 through r43615 into 'directory10/l':
U    directory10/l/file1
Summary of conflicts:
  Text conflicts: 23
  Tree conflicts: 39
svn: E155015: One or more conflicts were produced while merging r41855:43503 into
'/clean_trunk' --
resolve all conflicts and rerun the merge to apply the remaining
unmerged revisions

谁能告诉我这个输出试图告诉我们什么?

此输出中列出的许多目录/文件以及 svn merge-info 属性已经被合并,所以我不知道为什么说它们没有被合并。

如果我使用它最后提到的修订范围执行合并试运行,那么我什么也得不到:

svn merge -r41855:43503 --dry-run svn://svnhost/repo/uniworks/tags/uniworks-2.2.6/

我们是否需要应用所有合并冲突并在一次提交中全部解决?

我要拔头发了!

【问题讨论】:

  • 你检查过Resolving SVN merge postponed conflicts recursively。让我知道是否有任何提到的解决方案适合您。
  • 嗯,这个问题已经有 10 多年的历史了,它似乎不适合我们的情况。对不起。
  • 我知道这是很老的答案,只是想检查一下是否有帮助。检查SVN Book,在这里你应该得到一些有用的东西。如果你找到答案,你可以把它放在这里。 PS:参考。取自another Old answer ;)

标签: svn merge


【解决方案1】:

当存在冲突时,SVN 会创建带有修订名称的临时文件作为备份,例如文件名r123.txt 和文件名r345.txt

一旦你手动合并(解决)冲突,你需要告诉 SVN,通过命令删除这些文件:

svn resolved

谁能告诉我这个输出试图告诉我们什么?

'C' 代表冲突,'U' 代表更新。

我们是否需要应用所有合并冲突并解决它们 一次提交?

是的,您需要在一次签到时将它们全部合并。否则,您的构建中可能会出现诸如未找到定义、未定义变量等错误。

【讨论】:

  • 对不起,您的回答还不够。我们使用 NetBeans 进行合并/解析,因此不需要 svn resolved。我已经知道“C”代表冲突,“U”代表“更新”,但每行开头有 4 列字母。它们都是什么意思?另外,最后的“未合并修订”告诉我们什么?当我问到是否需要将它们全部合并到一个提交中时,我的意思是我是否需要这样做来解决冲突,而不是制作一个有效的构建。
猜你喜欢
  • 2014-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-03
  • 2010-11-17
  • 2013-10-27
  • 2013-01-02
  • 1970-01-01
相关资源
最近更新 更多