Как я могу найти SVN-репозиторий на наличие файлов в любой ревизии - PullRequest
25 голосов
/ 24 декабря 2008

Как я могу выполнить поиск, если файл с именем foo.txt был зафиксирован в моем хранилище SVN (в любой ревизии)?

Ответы [ 3 ]

36 голосов
/ 24 декабря 2008

Щелкните правой кнопкой мыши по корню извлеченной папки> TortoiseSVN> Показать журнал

Вы также можете вводить имена файлов там.

10 голосов
/ 24 декабря 2008

Это должно работать для вас:

svn log -r 0:HEAD -v $REPOSITORY_PATH | grep "/foo.txt"

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

   A /some/path/foo.txt
   D /some/path/foo.txt

Но я предполагаю, что дополнительная информация не проблема для вас. :)

5 голосов
/ 06 августа 2014

Используйте клиент Subversion 1.8+ и новые опции --search и --search-and становятся доступны для svn log команда . Эти параметры не позволяют выполнять полнотекстовый поиск внутри репозитория, и ищет только следующие данные:

  • автор ревизии (svn:author неверсионное свойство),
  • дата (svn:date неверсионная собственность),
  • текст сообщения журнала (svn:log неверсионное свойство),
  • список измененных путей (то есть путей, затронутых конкретной ревизией).

Насколько я думаю, вы можете искать "foo.txt" с помощью следующей командной строки:

svn log -v --search "foo.txt".

Вот полная страница справки об этих новых svn log параметрах поиска:

 If the --search option is used, log messages are displayed only if the
 provided search pattern matches any of the author, date, log message
 text (unless --quiet is used), or, if the --verbose option is also
 provided, a changed path.
 The search pattern may include "glob syntax" wildcards:
     ?      matches any single character
     *      matches a sequence of arbitrary characters
     [abc]  matches any of the characters listed inside the brackets
 If multiple --search options are provided, a log message is shown if
 it matches any of the provided search patterns. If the --search-and
 option is used, that option's argument is combined with the pattern
 from the previous --search or --search-and option, and a log message
 is shown only if it matches the combined search pattern.
 If --limit is used in combination with --search, --limit restricts the
 number of log messages searched, rather than restricting the output
 to a particular number of matching log messages.
...