ClearCase自动合并将文件的内容放在一行

时间:2014-11-07 17:32:37

标签: clearcase clearcase-ucm

我们在组织中使用ClearCase UCM INTEROP设置 我们正面临一个奇怪的问题,即文件内容在进行合并时放在一行上,从而导致构建失败。

有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:0)

取决于:

  • 什么"在进行合并时放在一条线上#34;表示(添加了额外的行,或者所有文本都在一行中,这意味着\n不会被视为换行符)
  • 要合并的文件类型(text,xml,binary,...),因为所涉及的合并管理器会有所不同。

首先尝试重现该问题,as explained in this technote

  • 复制" base"版本到base.txt。
  • 复制"来自"将版本转换为from.txt并将"复制到"版本到to.txt。
  • 运行以下命令:

    cleardiffmrg -out foo.out -base base.txt from.txt to.txt
    

查看忽略空格是否有帮助:

cleardiffmrg -blank_ignore -out foo.out -base base.txt from.txt to.txt.

检查与您正在进行合并的视图相关联的 text modes

尝试并确保文件的两个版本中使用的换行符序列相同(例如,\n,在Windows和Unix中)

答案 1 :(得分:0)

还有另一件事可以偷偷摸摸地咬你。

查看文本模式 - ClearCase有3个,如果你使用了错误的2,你可能会得到意想不到的结果。

这些模式是:

  • insert_cr(也称为msdos)。这将在明文创建(文件打开/编辑/等)上插入回车符,并在签入时将其删除。
  • 透明的。不对行终止进行任何更改。
  • strip_cr。这会在创建明文时将Windows行终止转换为Unix行终止。然后它会在签入时重新插入。

如果您对unix视图使用strip_cr,对于Windows使用insert_cr,则会出现各种线路终止问题。在某些情况下,这可能会破坏构建。

您需要在上面的列表中使用彼此相邻的2。 Windows使用insert_cr和unix"透明"。或Windows"透明"和unix strip_cr。

您可能希望在另一个编辑器中查看问题文件(notepad ++可以很好地处理两种行终止样式)并查看是否有Unix或Windows行终止。

了解尝试合并的平台也会有所帮助。如果它是在Windows上完成的,那么@ VoC的步骤将在他们调用Windows GUI文本合并工具时起作用。如果文件是" text_file"你可能想要使用Windows / Unix CLI合并工具(cleardiff)尝试相同的事情。元素。我们已经看到了2个CLI和GUI合并工具的行为不同的情况。