У меня есть представление ClearCase с папкой и двумя файлами. Я проверяю папку, удаляю файл и проверяю папку. Я остаюсь с одной папкой и одним файлом. Есть ли способ вернуть мой файл? Я использую стандартный набор инструментов Windows, включающий cleartool.
Отменить удаление файла в ClearCase
Ответ 1
Да, можно вернуть файл. Это важная особенность 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 [email protected]@/main/3/crucial .
ct ci -nc .
Первая строка означает, что мне не нужно вводить путь к каталогу в остальных трех командах; в противном случае это необязательно. Вторая строка проверяет каталог, чтобы его можно было отредактировать. Последняя строка проверяется в измененном каталоге. Третья строка - это то, где происходит волшебство...
Строка ct ln [email protected]@/main/3/crucial .
идентифицирует файл crucial
, который был замечен в версии /main/3
каталога .
, и связывает его с текущим каталогом (выданная версия каталога). Вы увидите версию файла, выбранную вашим cspec, но правильный файл находится в представлении (предполагая, что вы действительно получаете /vobs/somevob/[email protected]@/main/5
с помощью cspec).
(Обратите внимание, что вы не ограничены ссылкой на одну версию назад, вы можете восстановить файл через 10 лет и 20 версий, если вам нужно. Хотя вы можете связать файл с двумя каталогами одновременно, это очень важно unrecommended, вместо этого используйте символическую ссылку. Вы можете восстановить удаленный файл в другой каталог из своего последнего известного местоположения.)
Ответ 2
Чтобы добавить к Джонатану ответ:
-
вы можете делать каждый шаг, который он описывает графическим способом, через дерево версии родительского каталога: объединить из версии, которая по-прежнему ссылается на ваш файл на версию до текущей версии (который больше не ссылается на ваш файл).
Сделайте слияние "графически" (выберите вариант "графическое слияние" )
Затем вы можете выбрать файл, который хотите восстановить. -
вы также можете удалить эффект последней проверки (все еще для родительского каталога) с помощью
merge -delete
:
Внимание. Если в каталог этой версии было внесено несколько изменений, эти изменения также можно было бы отменить. Используйте команду
cleartool lshistory
, чтобы определить, какие другие изменения были внесены в эту версию каталога.
- Определите версию, где элемент был
rmnamed
.Используйте cleartool
merge -delete
, чтобы удалить изменения, применяемые в этой версии каталога.Например:
cleartool merge -to . -delete -version \main\17
Если единственным изменением в этой версии было удаление требуемого элемента, это изменение должно быть сделано автоматически (см. предупреждение).
Ответ 3
Чтобы добавить к более ранним комментариям, я бы предположил, что вместо "удаления" элементов из ClearCase просто rmname их. Таким образом, вы фактически не удаляете файлы, а скрываете их. Вы можете снова использовать команду rmname для извлечения (отображения) файлов в будущем.