4

(可能であれば)すべてのリビジョンを含むファイル内の文字列を検索する方法は?

foo.barそうする理由は、過去のどこかでファイルに文字列が含まれていたが、それ以降は削除されていることを知っているためです。ファイルには多くのリビジョンがあるため、手動検索には時間がかかります。foo.barファイルのすべてのリビジョンをダウンロードし、各リビジョンで文字列を検索するツールが必要です。

可能であれば、単一のファイルだけでなく(すべてのリビジョンも含む)ディレクトリを検索するとよいでしょう。ただし、これはオプションです。

私が思いついた唯一の解決策は、リビジョンごとにリビジョンをエクスポートするPythonスクリプトを作成し、常にファイルを読み取り、find()を使用して文字列を検索することです。

4

3 に答える 3

1

これはあなたの質問に答えるかもしれません: https ://groups.google.com/forum/?fromgroups#!topic / subversion-development / dFIFGBzKt9A

おそらく、履歴全体(gitなど)を介してdiffをダンプし、そのファイルをgrepすることができます。ただし、これにはsvn1.7が必要です。

独自のスクリプトを使用してこれを行う場合、svn-diffを使用してリビジョンごとに逆方向にリビジョンを移動する方が高速であり(私は試していません)、ディスク使用量を節約できます。

于 2012-07-30T06:48:08.423 に答える
1

このperlスクリプトを試しましたか:SubVersionリポジトリ内のファイルのすべてのリビジョンを検索するにはどうすればよいですか?最新のリビジョンから始まるsvnリポジトリから任意の文字列のファイルを検索します。

于 2012-07-30T06:59:58.180 に答える
0

Pythonソリューションも思いつきます

code = os.system("svn diff <file-name> -r r<n>:r<n+1> | grep <string-to-search>")

一致する場合codeは0、それ以外の場合は256、実際には1です。なぜsystem('exit 1')256`を返すのか

于 2012-07-30T07:17:03.420 に答える