FastNetMon

Friday 1 April 2011

Как восстановить удаленный файл в 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://m0j0.wordpress.com/2007/10/25/recovering-deleted-files-from-an-svn-repository/

1 comment :

  1. Неа, облом на коммите

    Sending modules/projects/hr.php
    svn: Commit failed (details follow):
    svn: File 'hr.php' is out of date
    svn: File not found: transaction '1094-xi', path '/trunk/modules/projects/hr.php'

    ReplyDelete

Note: only a member of this blog may post a comment.