首页 > 解决方案 > ClearCase:不同目录中具有相同 oid 的文件

问题描述

我遇到了让我难过的事情。

我们有几个在各个方面都相同的文件(包括它们的 oid - 所以它们肯定不是邪恶的双胞胎),但位于两个不同的目录中。查看元素属性,它们都包含相同的路径名,但它们也可以在第二个目录中找到。

我的第一个想法是它们(或它们的一个父目录)之间必须有一个符号链接。我在 VOB 的根目录中使用了以下命令来查找它们:

cleartool find . -kind slink -print

但是,它不返回任何结果。

有人知道这里发生了什么吗?

标签: clearcaseclearcase-ucmclearcase-remote-client

解决方案


由于在 ClearCase 中,文件夹负责记录其元素的列表,因此请务必描述该重复文件的父文件夹。

两个不同的文件夹可以记录同一个文件。

更准确地说,检查链接(不仅仅是软链接“链接”)

硬链接是现有文件目录中的附加条目。
硬盘上只存在该文件的一份副本。如果您修改任何副本,则会修改所有其他副本。ClearCase 通过相同的 inode 在目录结构中执行此操作,并将引用计数增加 1。

请注意,当您使用 时find -all,即使有一个或多个 VOB 硬链接指向该元素,也只会报告一个元素的一个实例。显示元素名称或 VOB 硬链接之一。

在“识别 VOB 中的硬链接”中查看更多信息。

使用cleartool find从VOB的根执行如下:

cleartool find -all -exec 'cleartool describe -fmt "%[aliases]ACQp\n" $CLEARCASE_XPN'

此输出将为您提供 VOB 中所有元素的列表,如果给定元素具有多个硬链接,则另一个硬链接将显示在列表中的逗号之后。
输出将类似于以下内容:

"/vobs/TestVOB1@@/main/dir1/7/1.txt", "/vobs/TestVOB1@@/main/dir1/7/1.foo.txt"

最后,以下命令将只为您提供带有硬链接的元素:

cleartool find -all -exec 'cleartool describe -fmt "%[aliases]ACQp\n" $CLEARCASE_XPN' | grep ","

推荐阅读