我有一个ClearCase视图,包含一个文件夹和两个文件.我检查文件夹,删除文件并重新检查文件夹.我留下了一个文件夹和一个文件.有办法让我的文件回来吗?我正在使用标准的Windows工具套件,其中包括cleartool.
Jon*_*ler 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 .
Run Code Online (Sandbox Code Playgroud)
第一行意味着我不必在其他三个命令中键入目录的路径; 否则,它是可选的.第二行检出目录,以便进行编辑.最后一行检查修改后的目录.第三行是魔术发生的地方......
该ct ln .@@/main/3/crucial .行标识在目录crucial版本/main/3中看到的文件,.并将其链接到当前目录(已检出的目录版本).您看到的文件版本将是您的cspec选择的文件版本,但正确的文件位于视图中(假设您确实选择了/vobs/somevob/somedir@@/main/5cspec).
(请注意,您不限于将链接作为一个版本;如果需要,您可以在10年后恢复文件和20个版本.虽然您可以同时将文件链接到两个目录,但这是非常不推荐的;请使用改为使用符号链接.您可以将已删除的文件恢复到与其上一个已知位置不同的目录中.)
添加到Jonathan的答案:
您可以通过父目录的版本树以图形方式执行他描述的每一步:从仍然引用您的文件的版本到版本到当前版本(不再引用您的文件)的合并.
以"图形方式"进行合并(选择"图形合并"选项)
然后,您可以选择要还原的文件.
您还可以通过以下方式删除上次签入(仍为父目录)的效果merge -delete:
警告:如果对此版本中的目录进行了多次更改,则还可以还原这些更改.使用该
cleartool lshistory命令确定对该目录版本所做的其他更改.
- 确定元素所在的版本
rmnamed.使用cleartool
merge -delete删除在该版本的目录中应用的更改.例如:
Run Code Online (Sandbox Code Playgroud)cleartool merge -to . -delete -version \main\17如果此版本中唯一的更改是删除了所需的元素,则应自动进行更改(请参阅注意事项).