Восстановление удалённого из CVS файла

Случилось страшное, то чего я всегда боялся и ни как не мог к этом подготовиться: навернулся мой CVS репозитарий

При работе с одним проектом я случайно удалил важные для всех проектов файлы, и заметил это только сутки спустя. В панике я сделал cvs update в 2 зеркалах, имеющихся дома, чем убил все имеющие у меня копии. Разумеется имелись бекапы на работе, но мне было бы очень жалко терять столько коммитов. Я чуть не начал рвать на себе волосы, но всё обошлось внимательным чтением документации к CVS: http://alexm.here.ru/cvs-ru/html_node/

Вся процедура проста, тривиальна и сводится к обыкновенному откату версии, но имеется тонкость: файл то удалён. Придётся снова добавить его в репозитарий, не боясь, что старые версии будут затёрты, а после добавления откатить текующую-нерабочую версию до последней нужной. Вот так:

ffcms]$ touch add-form1.xsl
ffcms]$ cvs add add-form1.xsl
# как видите новый файл получил версию 1,11, а в версии 1,10 он был удалён
cvs add: Re-adding file `add-form1.xsl' (in place of dead revision 1.10).
cvs add: use 'cvs commit' to add this file permanently
# смело коммитим добавление "нового файла"
ffcms]$ cvs commit -m "from remove" add-form1.xsl
Checking in add-form1.xsl;
ffcms/add-form1.xsl,v  <--  add-form1.xsl
new revision: 1.11; previous revision: 1.10
done
ffcms]$ cat add-form1.xsl |wc -l
0
# видите, файл пустой
ffcms]$ cvs log add-form1.xsl |head -25
# посмотрим номер последней нужной нам версии
RCS file: ffcms/add-form1.xsl,v
Working file: add-form1.xsl
head: 1.11
branch:
locks: strict
access list:
symbolic names:
    apr26do: 1.3.0.2
keyword substitution: kv
total revisions: 11;    selected revisions: 11
description:
----------------------------
revision 1.11
date: 2008/10/23 01:17:37;  author: u3679;  state: Exp;  lines: +0 -121
from remove
----------------------------
revision 1.10
date: 2008/10/21 16:26:57;  author: u3679;  state: dead;  lines: +0 -0
re build exmservice project
----------------------------
# вот эта версия нам подойдёт
revision 1.9
date: 2008/10/18 12:10:07;  author: u3679;  state: Exp;  lines: +2 -2
починил добавление постов блог, чёртовые регистры в полях SQL
ffcms]$
ffcms]$ cvs update -j 1.11 -j 1.9 add-form1.xsl
# восстанавливаем до нужной версии
RCS file: ffcms/add-form1.xsl,v
retrieving revision 1.11
retrieving revision 1.9
Merging differences between 1.11 and 1.9 into add-form1.xsl
ffcms]$ cat add-form1.xsl |wc -l
121
# ну вот, без этого файла я не смог бы написать этот пост

Удачного восстановления своих файлов

Комментариев 0
Нужна авторизация с помощью
Об авторе
Илья Илья

меня можно найти тут