web-dev-qa-db-ja.com

リビジョンにファイルが存在するかどうか、svnリポジトリを検索するにはどうしたらいいですか

foo.txtという名前のファイルが(任意のリビジョンの)svnリポジトリにコミットされたかどうかを検索するにはどうすればよいですか?

25
Manu

チェックアウトしたフォルダーのルートを右クリック> TortoiseSVN>ログを表示

そこにもファイル名を入力できます。

37
Martijn Laarman

これはあなたのために働くはずです:

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

これにより、ファイルへのパスとログからの状態がわかります。ヒットした場合は、ある時点で存在したことがわかります。結果が得られない場合、リポジトリのどのリビジョンにも一致するものはありません。また、各ログ行の状態も表示されます。例:

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

しかし、私は追加情報はあなたにとって問題ではないと思います。 :)

10
Adam Bellaire

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.
5
bahrep