Подтвердить что ты не робот

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

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

EDIT:

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

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

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

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

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

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