ここでは、かなり大きなSubversionリポジトリがあります。内部モニタリングの一環として、すべてのリポジトリ内のすべてのリビジョンのすべてのファイルとディレクトリが必要です。問題は、そのうちの1つには約29000のリビジョンがあり、約300,000のディレクトリが含まれており、約4百万のファイルが含まれています。以前の方法では、単にsvnlookコマンドの出力をperlスクリプトで使用してすべてを数えました。私は出力を使用してみました 'svnlook変更'カウントを構築するために、それは主に動作しますが、いくつかかなり迷惑な推測が関与しています。補足として、リポジトリはxen vmでホストされているため、I/Oパフォーマンスは少し問題です。誰もがこれを行うためのより良い方法がありますか?非常に大規模なSubversionリポジトリのファイルとディレクトリのカウント
3
A
答えて
0
ダンプデルタ形式のsvnadmin
を調べてみます。私は少し試してみましたが、基本的にすべてのファイルとすべてのリビジョンを含む1つの巨大なパッチタイプのファイルです。これは、Perlのようなもので処理するために、自然の中でのテキストなので、比較的簡単だし、それは時に各リビジョン1の全体を経由に比べてかなり小さいです。
あなたはおそらく、すべてのファイル(多分これのためのSQLiteを使用し、400万人の場合)の表現を持っていて、各リビジョンを通過するときに、それらを更新する必要があると思います。デルタは順番にリビジョンを実行するので、それは比較的簡単です。 (たぶん私は楽観的であることしています。)
-1
どのようなものについて:
find /svndir | wc -l
LinuxやUnix上で見つけるからの出力は、ファイルまたはディレクトリごとに1行を生成し、それが再帰的です。出力を "wc -l"にパイプして行を数えます。あなたは、サーバー側のレポについて話していると仮定すると、
1
。
svn list -R --xml file:///svnrepos/myrepo | grep kind=\"file\" | wc -l
その非常に速いが、それは正確ではありません。
関連する問題
- 1. のLucene:IndexSearcher.searchは()私は非常に大規模なデータベースを持っている非常に大規模なデータベース
- 2. 非常に大規模なデータベース用のSQL Azure
- 3. Crystal Reports - 非常に大規模なデータベース、非常に長い処理時間
- 4. Javaで非常に大規模なマップを作成する
- 5. Notepad ++大規模なC++ヘッダーでSourceCookifierプラグインが非常に遅い
- 6. ディレクトリ内の大規模なファイルを反復する
- 7. 非常に大規模な辞書のパフォーマンスをPythonで改善する
- 8. 非常に大規模な本番テーブルのインデックスをデフラグします
- 9. 大規模な.sqlファイルをMySQLにインポート
- 10. RESTと大規模なデータベースクエリ
- 11. 非常に大きなJarファイルとFAT32
- 12. Javascript、大規模な非常に大きなテーブルをDOMに追加する最良の方法
- 13. 大規模なコミュニティのCMS
- 14. 大規模なグリッドデータセットのストレージ
- 15. のJava:大規模なリスト
- 16. 大規模なXMLファイルの効率的な格納とアクセス
- 17. 中規模大規模プロジェクトの構造
- 18. 大規模なディレクトリ構造、ネットワーク化されたアプリケーションのパフォーマンス
- 19. 大規模なファイル内での操作と検索
- 20. 非常に大規模な、Herokuの静的なサイトのmemcached/fileキャッシングの代替手段
- 21. AsyncSocketを使用して大規模なファイルやディレクトリを転送する方法
- 22. 中規模のAndroidアプリケーションの構築が非常に遅い
- 23. 大規模なPythonランダムシェアラー
- 24. PHP - 大規模なPOSTリクエストサーバエラー
- 25. 大規模なアプリケーションデザイン(WPF/Silverlight)
- 26. 追加大規模なXML
- 27. 大規模なMySQLアップデートクエリ
- 28. DataGridView、大規模なデータバインディングソリューション
- 29. サイズで大規模なデータセット
- 30. C#windowsの大規模なディレクトリでgit updateを実行すると、
これはレポ内の各「ファイル」のファイルを持っていないサーバー側のレポ内のファイルを、数えることになるOPコンテキストに基づいています。上記のコマンドは、レポのメタを追跡デシベル、confに、DAV、およびその他のファイルをカウントします。 – Eddie