SVN: Как узнать, в какой версии файл был удален?
Учитывая, что я использую командную строку svn в Windows, как найти номер версии, в которой был удален файл? В Windows нет никаких причудливых материалов, таких как grep, и я пытаюсь использовать только командную строку без TortoiseSVN. Спасибо заранее!
EDIT:
- Я видел несколько сообщений, например изучение истории удалённого файла, но он не ответил на мой вопрос.
- Есть ли способ, кроме svn log -v url > log.out, и поиск с помощью Notepad?
Ответы
Ответ 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 действительно имеет смысл. Это значительно ускоряет просмотр того, что происходит по сравнению с попыткой прочитать страницы загадочного текста (независимо от того, насколько хорошо вы читаете этот текст).