Как восстановить удаленный файл в svn?

Предположим, что у нас имеется файл когда-то удаленный из SVN репозитория, мы знаем его имя и папку, где он находился.
Для начала нужно найти ревизию, когда файл был удален, для этого переходим в папку, где он находился ранее и делаем листинг изменений репозитория:

cd some_folder
svn log --verbose | grep file_name -C 10


В ответ будет выдано примерно следующее:

...
r552 | developer | 2010-11-18 19:55:04 +0300 (Thu, 18 Nov 2010) | 1 line
Changed paths:
D /xxxx/trunk/file_name.php
M /....
M /....
...

Теперь мы знаем, что в ревизии 552 файл уже был удален, следовательно, нам нужно взять этот файл из ревизии 551.

Проверить существование файла в определенной ревизии можно следующим образом:

# svn ls -r 552| grep file_name
# svn ls -r 551| grep file_name
file_name.php

Возвращаем удаленный файл на место:

svn up -r 551 file_name.php

В ответ нам будет выдано:

A file_name.php
Updated to revision 551.

После этого добавляем файл в текущую ревизию и коммитим:

svn ci -m 'File file_name.php reverted'

Файл востановлен!

Источники: http://phpsuxx.blogspot.com/2011/04/blog-post_08.htmlhttp://m0j0.wordpress.com/2007/10/25/recovering-deleted-files-from-an-svn-repository/

Comments are closed.