在ClearCase中撤消删除文件

在ClearCase中撤消删除文件,clearcase,Clearcase,我有一个带有文件夹和两个文件的ClearCase视图。我签出文件夹,删除一个文件,然后将文件夹签回。我只剩下一个文件夹和一个文件。有没有办法找回我的文件?我使用的是标准的Windows工具套件,包括cleartool 是的,可以取回文件。这是ClearCase的一个重要特性,有时也是一个救生装置 假设您的目录是/vobs/somevob/somedir。包含两个文件的目录版本为/main/3;因此,只有一个文件的版本是/main/4。删除的文件是/vobs/somevob/somedir/cri

我有一个带有文件夹和两个文件的ClearCase视图。我签出文件夹,删除一个文件,然后将文件夹签回。我只剩下一个文件夹和一个文件。有没有办法找回我的文件?我使用的是标准的Windows工具套件,包括cleartool

是的,可以取回文件。这是ClearCase的一个重要特性,有时也是一个救生装置

假设您的目录是/vobs/somevob/somedir。包含两个文件的目录版本为/main/3;因此,只有一个文件的版本是/main/4。删除的文件是/vobs/somevob/somedir/critical。假设ct是cleartool的别名,那么您可以:

cd /vobs/somevob/somedir
ct co -c 'Recover file crucial' .
ct ln .@@/main/3/crucial .
ct ci -nc .
第一行表示我不必在其他三个命令中键入目录的路径;否则,它是可选的。第二行签出目录,以便对其进行编辑。最后一行检查修改后的目录。第三行是魔法发生的地方

ct ln@/main/3/至关重要。第行标识在目录的version/main/3中看到的文件。并将其链接到当前目录,即该目录的签出版本。您看到的文件版本将是您的cspec选择的版本,但如果您确实使用cspec拾取/vobs/somevob/somedir@@@main/5,则视图中会显示正确的文件


请注意,您并不局限于链接一个版本;您可以在10年后恢复文件,如果需要,可以恢复20个版本。虽然您可以同时将一个文件链接到两个目录,但这是非常不推荐的;改用符号链接。您可以将已删除的文件从上次已知的位置恢复到另一个目录中。

要添加到Jonathan的答案中:

您可以通过父目录的版本树以图形方式执行他描述的每个步骤:从仍然引用您的文件的版本合并到不再引用您的文件的当前版本。 以图形方式进行合并选择“图形合并”选项 然后,您可以选择要还原的文件

您还可以通过以下方式消除上次签入对父目录的影响:

警告:如果在此版本中对目录进行了多个更改,则这些更改也可以还原。使用cleartool lshistory命令确定对该目录版本进行了哪些其他更改

确定元素命名的版本。 使用cleartool merge-delete删除应用于该版本目录的更改

例如:

cleartool merge -to . -delete -version \main\17
如果在此版本中所做的唯一更改是删除所需的元素,则应自动进行更改,请参见关于警告


为了补充前面的评论,我建议不要从ClearCase中删除元素,只需命名它们。这样,您实际上不会删除文件,而是隐藏它们。以后可以再次使用rmname命令来检索和取消隐藏文件。

ct rm命令是ct rmname的缩写。如果删除文件的操作是ct rmelem,则无法使用所述机制进行恢复。除非受到极端胁迫,否则不要使用ct rmelem。