有人说劫持文件是一个文件,其中只有#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
答案 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;问题。