5

サイズは約 7 GB で、さまざまなプロジェクトの多数のファイルとディレクトリを保持しています。

現在、実際にはライブラリである 1 つのプロジェクト構造に大きな変更を加え、同じリポジトリ内の他のかなりの数のプロジェクトでそれを使用しています。現在、ドキュメントはまばらで、どのプロジェクトが実際にこのライブラリを外部として実際に使用していたのかわかりません。どうにかして Subversion サーバー/リポジトリにクエリを実行して、svn:export プロパティに特定の文字列を持つすべてのディレクトリを返すようにしたいと考えています。私はそれらを調整することができます。

理想的には、リポジトリ全体をチェックアウトしないと、すべてのブランチとタグが原因で問題が発生します。

それはどういうわけか賢い方法で可能ですか?

どうも

4

1 に答える 1

8

ほんの少しの変更であれば、svn propget を --recursive フラグとともに使用してプロパティを取得し、手動で変更することです (これは戻るのに時間がかかる場合があります)。

svn propget --recursive svn:externals http://your.svn.server/ | grep -B 5

より自動化された方法でこれを行うには、スクリプトを作成できます。

  • ルート内のすべてのパスの svn:externals を再帰的に取得します

  • 探している文字列が外部に含まれているディレクトリをチェックアウトします (パス コンポーネントをファイルシステム区切り記号で分割し、チェックアウトするものを本当に選択したい場合は、各コンポーネントを depth=immediate でチェックアウトできます)

  • 変更を加えてコミットする

この方法の利点は、チェックアウトがリポジトリを効果的にミラーリングするため (大量のものが不足していても)、すべての変更をトップレベルで 1 回コミットできることです。

HTH。

于 2011-02-28T18:19:29.893 に答える