У меня есть вид ClearCase с папкой и двумя файлами. Я проверяю папку, удаляю файл и проверяю папку. Я остаюсь с одной папкой и одним файлом. Есть ли способ вернуть мой файл? Я использую стандартный набор инструментов Windows, включающий cleartool.Undo удалить файл в ClearCase
ответ
Да, можно вернуть файл. Это важная особенность 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, используйте символьную ссылку вместо вы можете восстановить удаленный файл в другой каталог из последнего известного местоположения)
чтобы добавить ответ Джонатана:
вы можете сделать каждый шаг, который он описывает в.. графическим способом, через дерево версий родительского каталога: объединить с которая по-прежнему ссылается на ваш файл на версию до текущей версии (которая больше не ссылается на ваш файл).
Сделайте слияние «графически» (выберите опцию «графическое слияние»)
Затем вы можете выбрать файл, который хотите восстановить.вы также можете удалить эффект последнего оформленного (до сих пор для родительского каталога) через
merge -delete
:
Внимание: Если более чем один изменение было внесено в каталог в эта версия, эти изменения также могут быть возвращены. Используйте команду
cleartool lshistory
, чтобы определить, какие другие изменения были внесены в эту версию каталога.
- Определите версию, в которой элемент был
rmnamed
.Используйте cleartool
merge -delete
, чтобы удалить изменения, применяемые в этой версии каталога.Например:
cleartool merge -to . -delete -version \main\17
Если единственное изменение, внесенное в этой версии было удаление нужного элемента, то изменение должно производиться автоматически (см об осторожности).
Чтобы добавить к ранее комментариям, я бы предположил, что вместо «удаления» элементы из ClearCase, просто rmname их. Таким образом, вы фактически не удаляете файлы, а скрываете их. Вы можете снова использовать команду rmname для извлечения (отображения) файлов в будущем.
Команда 'ct rm' является аббревиатурой от' ct rmname'. Если операция, которая удалила файл, была 'ct rmelem', то восстановление было бы невозможно с помощью описанного механизма. Не используйте 'ct rmelem', за исключением экстремального принуждения. –
[Как восстановить элемент, который был назван rmnamed] (http://www-01.ibm.com/support/docview.wss?uid=swg21149206) – KyleMit