リポジトリに接続し、コミットのリストをダウンロードしてローカルに保存する PHP ツールを作成しています。ただし、特定のリポジトリが巨大であり、そのログを取得すると長い待機時間とタイムアウト/エラーが発生する可能性があるため、非同期リクエストを使用して各コミット メッセージをダウンロードしたいと考えています。
したがって、リビジョン履歴に開始点と終了点があり、次のようにすべてのログを取得できます。
svn log -r <from_revision>:<to_revision> <REPO_URL>
...そして、非常に巨大な XML ファイルになってしまい、ダウンロードに長い時間がかかり、解析に長い時間と多くのリソースがかかり、保存に長い時間がかかる可能性があります。
開始点と終了点がわかっている場合は、for() ループを作成してリビジョンを 1 つずつ取得できます。
svn log -r <revision> ...
しかし、特定のパスに存在する特定のリビジョンがわからないため、エラーが発生します。更新中にアプリケーションがそのエラーを無視するようにすることはできますが、これは厄介なハックであり、とにかく要求を投稿して応答を待機します。これはまったく良くありません。
だから、私はこのようなものが必要です:
- 「このパスのリビジョン番号のリストを教えてください」、または:
- 「~の間のこのパスのリビジョン番号のリストをください」
そうすれば、リポジトリ パスの有効なリビジョンの配列を作成し、それらを 1 つずつ取得できます。
すべての提案を歓迎します。事前に感謝します。