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" 问题。
有人说被劫持的文件是 "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 工作树同步时,
这样,我就完全绕过了 "hijacked/not hijacked" 问题。