SVN: Как узнать, в какой ревизии был удален файл?

Учитывая, что я использую командную строку svn в Windows, как найти номер версии, в которой был удален файл ? В Windows нет таких необычных вещей, как grep, и я пытаюсь использовать только командную строку без TortoiseSVN. Заранее спасибо!

РЕДАКТИРОВАТЬ:

23
задан Community 23 May 2017 в 12:34
поделиться

2 ответа

Установите 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 является необязательным, однако у вас обычно есть обзор того, насколько глубоким вам нужен поиск, который приносит вам некоторую производительность.)

17
ответ дан 29 November 2019 в 02:41
поделиться

Журнал - это место, где можно посмотреть. Я знаю, что вы не хотите слышать этот ответ, но именно здесь вам нужно искать удаленные файлы в SVN.

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

Самый простой способ справиться с этой проблемой, который я знаю, - это отойти от командной строки и использовать инструмент с графическим интерфейсом, такой как TortoiseSVN .

TortoiseSVN связывает себя со стандартным проводником Windows, поэтому его очень легко использовать. В контексте ответа на этот вопрос вы все равно будете использовать его для просмотра журналов, но это станет гораздо более быстрым упражнением:

Найдите папку SVN, которую вы хотите изучить. Затем щелкните правой кнопкой мыши значок папки и выберите TortoiseSVN -> Просмотр журналов из контекстного меню.

Теперь у вас появится окно со всеми изменениями, внесенными в эту папку. В частности, легко увидеть, какие ревизии имели добавления и удаления, потому что список включает набор значков действий для каждой ревизии. Вы можете дважды щелкнуть по ревизии, чтобы получить список файлов, которые были изменены (или сразу перейти к представлению diff, если был изменен только один файл)

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

Я знаю, что вы спрашиваете о командной строке, но для таких административных задач браузер с графическим интерфейсом действительно имеет смысл. Это позволяет намного быстрее увидеть, что происходит, по сравнению с попыткой прочитать страницы загадочного текста (независимо от того, насколько хорошо вы разбираетесь в чтении этого текста).

9
ответ дан 29 November 2019 в 02:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: