我有一个包含文件夹和两个文件的ClearCase视图。我检查文件夹,删除文件并重新检查文件夹。我留下了一个文件夹和一个文件。有办法让我的文件回来吗?我正在使用标准的Windows工具套件,其中包括cleartool。
答案 0 :(得分:21)
是的,可以恢复文件。这是ClearCase的一个重要特性(有时可以节省生命)。
假设你的目录是/vobs/somevob/somedir
。其中包含两个文件的目录版本为/main/3
;因此,包含一个文件的版本为/main/4
。删除的文件为/vobs/somevob/somedir/crucial
。假设ct
是cleartool
的别名,则执行以下操作:
cd /vobs/somevob/somedir
ct co -c 'Recover file crucial' .
ct ln .@@/main/3/crucial .
ct ci -nc .
第一行表示我不必在其他三个命令中键入目录的路径;否则,它是可选的。第二行检出目录,以便进行编辑。最后一行检查修改后的目录。第三行是魔术发生的地方......
ct ln .@@/main/3/crucial .
行标识在目录crucial
的版本/main/3
中看到的文件.
,并将其链接到当前目录(已检出的版本目录)。您看到的文件版本将是您的cspec选择的文件版本,但正确的文件位于视图中(假设您确实使用cspec选择了/vobs/somevob/somedir@@/main/5
。)
(请注意,您不限于将链接作为一个版本;如果需要,您可以在10年后恢复文件和20个版本。虽然您可以同时将文件链接到两个目录,但这是高度的不推荐使用;请改用符号链接。您可以将已删除的文件恢复到与其上一个已知位置不同的目录中。)
答案 1 :(得分:9)
添加到Jonathan的回答:
您可以通过父目录的版本树以图形方式执行他描述的每一步:从仍然引用您的文件的版本合并到版本到当前版本(不再提及你的档案了。) 以“图形方式”进行合并(选择“图形合并”选项) 然后,您可以选择要还原的文件。
您还可以通过merge -delete
删除上次签到(仍为父目录)的效果:
警告:如果对此版本中的目录进行了多次更改,则还可以还原这些更改。使用
cleartool lshistory
命令确定对该目录版本所做的其他更改。
- 确定元素
rmnamed
的版本。使用cleartool
merge -delete
删除该目录版本中应用的更改。例如:
cleartool merge -to . -delete -version \main\17
- 醇>
如果此版本中唯一的更改是删除了所需的元素,则应自动进行更改(请参阅注意事项)。
答案 2 :(得分:0)
要添加到之前的注释,我建议不要从ClearCase中“删除”元素,只需将它们命名为rmname。这样您实际上不会删除文件但会隐藏它们。您可以再次使用rmname命令检索(取消隐藏)以后的文件。