Подтвердить что ты не робот

Отменить удаление файла в ClearCase

У меня есть представление ClearCase с папкой и двумя файлами. Я проверяю папку, удаляю файл и проверяю папку. Я остаюсь с одной папкой и одним файлом. Есть ли способ вернуть мой файл? Я использую стандартный набор инструментов Windows, включающий cleartool.

4b9b3361

Ответ 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 для извлечения (отображения) файлов в будущем.