在Clearcase中查找相同的元素

时间:2014-02-19 15:39:28

标签: version-control clearcase reportbuilder cleartool

在ClearCase中,由于几个开发人员的工作流程不同,我们最终得到了两个分支上的一些文件,即使它们是相同的;这会导致在rebase / merge期间出现不必要的麻烦。要从其中一个分支中删除它们,首先,我需要找到BRANCH_1和BRANCH_2上相同的元素(文件/目录)列表。有没有办法找到这个清单?

我知道如何使用Report Builder(和cleartool脚本)并找到两个标签之间的差异,但这似乎没有帮助。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

在您的情况下,我们讨论的是同一个文件,在不同的分支上有两个相同的版本。

检测这些快照的最简单方法是通过2个快照视图(快照因为读取访问速度比动态视图更快),并使用简单的差异工具(例如kdiff3

对于检测到的每个相同文件,您可以在两个不同分支的两个版本之间绘制合并箭头。请参阅“Merge arrow in clear case”。

在下一次常规ClearCase合并期间,该合并箭头足以让ClearCase 不考虑(即忽略)这些相同的文件。

OP注意到:

  

两个视图在branch1上都有一些公共文件显示为相同,因为快照对每个视图都有相同的副本。
  我需要的只是存在于不同分支但内容相同的文件。

同样,cleartool descr -fmt方法很有用:它允许您使用完整的扩展路径描述元素(使用%n/main/x/branch1/y):这样,对于一个文件存在于两个视图中并且已被diff工具发现“相同”,您可以检查是否找到了2个不同的扩展路径名,或者使用相同的路径名(在这种情况下,您不必对该文件执行任何操作) )


原始答案:不同分支上的两个相同文件“在rebase / merge期间引起不必要的麻烦”通常是邪恶的双胞胎

official IBM documentation about Evil Twin确实建议使用简单的cleartool find(您还有old 2010 video on it)。
结合fmt_ccase,您可以使用descr -fmt "%En %On\n"启动2次搜索:

  • branch1
  • 的回顾
  • branch2
  • 视图中的一个

这将显示找到的元素的全名,以及它们的oid(对象id):具有相同名称但不同oid的2个文件将是一个邪恶的双胞胎。

您会在“What's the easiest way to detect “evil twins” in Rational ClearCase?

中找到类似的方法