скопировать файл из предыдущей версии в репозиторий svn - PullRequest
6 голосов
/ 24 февраля 2011

Я пытаюсь скопировать удаленный файл из предыдущей версии из хранилища svn в мой рабочий каталог.

Я знаю, что файл присутствует в ревизии r xxx , потому что я делаю svn log -v и вижу старый номер ревизии, связанный с файлом.

Я также делаю svn info, чтобы найти имя хранилища, которое в моем случае имеет вид svn+ssh://repository

Я тогда делаю svn copy -r xxx svn+ssh://repository name/filename ./filename

Но он жалуется, что svn: File not found

1 Ответ

9 голосов
/ 24 февраля 2011

По умолчанию, когда вы указываете URL-адрес файла в репозитории, SVN предполагает, что вы ссылаетесь на объект в HEAD . Таким образом, ваша команда на самом деле означает:

  1. найдите 'имя файла' в заголовке
  2. проследить историю этого файла до ревизии xxx
  3. скопировать файл, как он выглядел тогда, в текущий каталог

Конечно, на первом этапе это не получается, так как файл больше не существует в HEAD. Вам нужно явно сослаться на объект, который использовал для вызова filename обратно в ревизии xxx, используя так называемую "ревизию колышка":

svn copy -r xxx svn+ssh://repository/filename@xxx ./filename

В книге SVN есть более подробное объяснение изменений в колышках , если вы чувствуете себя смелым ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...