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

时间:2015-02-02 13:18:29

标签: clearcase

有人说劫持文件是一个文件,其中只有#34;只读"旗帜已被删除。

我试图删除"只读" flag(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

1 个答案:

答案 0 :(得分:1)

当我在ClearCase和Git之间并行工作时,我不会触及ClearCase中的git repo:我在其他地方克隆它并从那里开始工作。

实际上,我没有直接在 ClearCase视图中创建一个git repo :我在外面创建它,在ClearCase视图中添加所有文件(仅用于初始添加) :git add --work-tree=/path/to/CC/view

当需要将ClearCase快照视图与git工作树同步时,从该工作树到ClearCase视图执行clearfsimport (as in this answer):仅检出/更新已修改的文件并签入。< / p>

这样,我完全绕过了被劫持/未被劫持的#34;问题。