Учитывая, что я использую командную строку svn в Windows, как найти номер версии, в которой был удален файл ? В Windows нет таких необычных вещей, как grep, и я пытаюсь использовать только командную строку без TortoiseSVN. Заранее спасибо!
Установите Cygwin.
Я использую это:
svn log -v --limit <nr> -v | grep -E '<fileName>|^r' | grep -B 1 <fileName>
где
fileName - the name of the file or any pattern which matches it
nr - the number of latest revisions in which I want to look for
Это даст вам ревизии для всех действий (добавить, удалить, удалить, изменить), касающихся файла, но с помощью простого изменения grep
вы можете получить ревизии только для удаления.
(Очевидно, --limit является необязательным, однако у вас обычно есть обзор того, насколько глубоким вам нужен поиск, который приносит вам некоторую производительность.)
Журнал - это место, где можно посмотреть. Я знаю, что вы не хотите слышать этот ответ, но именно здесь вам нужно искать удаленные файлы в SVN.
Причина этого в том, что удаленный файл не виден после того, как он был удален. Единственное место, где можно узнать о его существовании, - либо в журналах, либо путем извлечения более ранней ревизии до ее удаления.
Самый простой способ справиться с этой проблемой, который я знаю, - это отойти от командной строки и использовать инструмент с графическим интерфейсом, такой как TortoiseSVN .
TortoiseSVN связывает себя со стандартным проводником Windows, поэтому его очень легко использовать. В контексте ответа на этот вопрос вы все равно будете использовать его для просмотра журналов, но это станет гораздо более быстрым упражнением:
Найдите папку SVN, которую вы хотите изучить. Затем щелкните правой кнопкой мыши значок папки и выберите TortoiseSVN -> Просмотр журналов из контекстного меню.
Теперь у вас появится окно со всеми изменениями, внесенными в эту папку. В частности, легко увидеть, какие ревизии имели добавления и удаления, потому что список включает набор значков действий для каждой ревизии. Вы можете дважды щелкнуть по ревизии, чтобы получить список файлов, которые были изменены (или сразу перейти к представлению diff, если был изменен только один файл)
. Таким образом, вы можете легко увидеть, какие ревизии были удалены, и вы можно быстро щелкнуть их, чтобы узнать, какие файлы были задействованы. Это действительно так просто.
Я знаю, что вы спрашиваете о командной строке, но для таких административных задач браузер с графическим интерфейсом действительно имеет смысл. Это позволяет намного быстрее увидеть, что происходит, по сравнению с попыткой прочитать страницы загадочного текста (независимо от того, насколько хорошо вы разбираетесь в чтении этого текста).