web-dev-qa-db-ja.com

SVNリポジトリでファイル名を検索する

数千のフォルダーとサブフォルダーを含むコードのバルクリポジトリがあります。このリポジトリでファイル名またはWordで検索したいです。

Root folder
    a\
    b\
    c\
    d\
    e\
    f\ab\
    f\ab\cd.txt

私はcd.txtを検索したいが、それがSVNリポジトリのどこにあるか知らない、そのために私はファイル名cd.txtを入れてコマンドを実行するSVNのルートフォルダで検索を実行したい各フォルダには、ファイルの詳細結果が表示されます。..

希望の要件は明確です。これで私を助けてください。

82
Baljeet

ファイルが作業コピーにある場合、svn 1.5を使用している場合:

svn list --depth infinity | grep <filename>

または以前のバージョンのsvn:

find . -name <filename> -not -path '*.svn*'

履歴内でファイルを検索する必要がある場合(削除または移動):

svn log -v | less

そしてそれを検索します:

\<filename><return>
59
lmop

以下は私のために働く(svnバージョン1.4.6)

svn list -R <URL> | grep "<file_pattern>"
57
Marios V

リポジトリ自体へのアクセスで使用します(つまり、svn Hostファイルシステムで)

svnlook tree [path_to_repo] | grep [file_name]  

または、すべてのリポジトリを検索します(複数のリポジトリを設定している場合)。

for i in \`ls [path_to_repos_dir]`; do echo $i; svnlook tree [path_to_repos_dir]/$i | grep -i [file_or_folder_name]; done 

オプション--full-pathsは、ファイルへのリポジトリ内のフルパスを提供します(見つかった場合)

例:

for i in `ls /u01/svn-1.6.17/repos`; do echo $i; svnlook tree --full-paths /u01/svn- 1.6.17/repos/$i | grep -i somefile.txt; done

静的コピーが必要な場合、出力をファイルにリダイレクトします。
nix OSの使用を想定しています。

17
Robert Iles

svn list --depth infinity <your-repo-here>リポジトリ内のファイルのリストを取得し、svn catコンテンツを取得します。あなたは付け加えられます --xmllistコマンドのキーで、解析を少し簡単にします。

12
Anton Gogolev

最近、リポジトリをリストするために tility を公開しました。これは、「svn ls --depth infinity」アプローチよりもはるかに高速です。これが ベンチマーク です。 Subversion内部APIで使用可能な関数を呼び出しますが、現在はコマンドラインからアクセスできます。

だからあなたは走ることができます

$ svn-crawler <URL> | grep "<file_pattern>"
6
Dmitry Pavlenko

TortoiseSVNを使用している場合は、プロジェクトごとに見ても構わないと思っているなら、これを試すことができます。

  1. リポジトリのトップレベルURLの下に空のプロジェクトを作成し、BLANKと呼びます
  2. 左ペインのリポジトリURLをクリックします
  3. 右側のペインで、BLANKプロジェクトと目的のプロジェクトを選択します-トランクを言う
  4. ブラウザーのメニューを右クリックしてポップアップし、「URLの比較」を選択します。リポジトリーのサイズによっては、ロードに数分かかる場合があります。ただし、基本的には、プロジェクトリスト全体を「検索可能」リストに入れます。
  5. 検索フィルターにファイル名またはその他の文字列を入力します
4
dci_dave