数千のフォルダーとサブフォルダーを含むコードのバルクリポジトリがあります。このリポジトリでファイル名またはWordで検索したいです。
Root folder
a\
b\
c\
d\
e\
f\ab\
f\ab\cd.txt
私はcd.txtを検索したいが、それがSVNリポジトリのどこにあるか知らない、そのために私はファイル名cd.txtを入れてコマンドを実行するSVNのルートフォルダで検索を実行したい各フォルダには、ファイルの詳細結果が表示されます。..
希望の要件は明確です。これで私を助けてください。
ファイルが作業コピーにある場合、svn 1.5を使用している場合:
svn list --depth infinity | grep <filename>
または以前のバージョンのsvn:
find . -name <filename> -not -path '*.svn*'
履歴内でファイルを検索する必要がある場合(削除または移動):
svn log -v | less
そしてそれを検索します:
\<filename><return>
以下は私のために働く(svnバージョン1.4.6)
svn list -R <URL> | grep "<file_pattern>"
リポジトリ自体へのアクセスで使用します(つまり、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の使用を想定しています。
svn list --depth infinity <your-repo-here>
リポジトリ内のファイルのリストを取得し、svn cat
コンテンツを取得します。あなたは付け加えられます --xml
list
コマンドのキーで、解析を少し簡単にします。
TortoiseSVNを使用している場合は、プロジェクトごとに見ても構わないと思っているなら、これを試すことができます。