ClearCase 如何识别被劫持的文件?

How ClearCase identify hijacked files?

有人说被劫持的文件是 "Read Only" 标志已被删除的文件。

我试图删除 "Read Only" 标志 (Windows),但 ClearCase 未将其识别为已劫持。然后我尝试使用 Cygwin touch 文件而不实际更改任何模式标志。这次 ClearCase 警告我,我们被劫持了!

ClearCase 似乎只查看文件的时间戳而不是它们的内容,也不是它们的只读标志。当与 git 并行工作时,这种机制有一个非常糟糕的副作用。例如,如果我这样做:

 git checkout bar
 git checkout master

这将是相同的:

 touch foo

因此,ClearCase 会认为 foo 被劫持了,但事实并非如此。对于大型项目,这将非常引人注目,不幸的是,我总是使用 git 在我的快照视图中快速来回切换。

对我来说什么是好的解决方案?

编辑

一个更危险的例子是这个:

 stat -c 'touch --no-create -d "%y" "%n"' foo > restore_timestamp
 echo "ClearCase will not see this" >> foo
 source restore_timestamp
 rm restore_timestamp

当我在 ClearCase 和 Git 之间并行工作时,我不会触及 ClearCase 中的 git 存储库:我将它克隆到别处并从那里开始工作。

实际上,我没有直接在 ClearCase 视图中创建 git 存储库 :我在外部创建它,将 ClearCase 视图中的所有文件添加到其中(仅用于初始添加:git add --work-tree=/path/to/CC/view

当需要将 ClearCase 快照视图与 git 工作树同步时, 从该工作树到 ClearCase 视图:只检查修改的文件 out/updated 并签到。

这样,我就完全绕过了 "hijacked/not hijacked" 问题。