2009-05-11 14 views
4

SVNによって別のリポジトリのサブセットとしてリポジトリを保持する方法はありますか?Subversionサブリポジトリ

私は、次のものがあります:

  1. phpCodeRepo
  2. pyCodeRepo
  3. contentRepo
1及び2は、そのレポの要素として、レポのいくつかのデータを持つことができるよう

3を更新すると、1と2で(オプションの)バージョンインクリメントが発生するようになります.1または2をチェックアウトすると、3の正しいバージョンもチェックアウトされます。

+0

「フック」メソッドを使用すると、 「新しいアップデートを使用するようにphpCodeRepoとpyCodeRepoを設定しますか?」というシェルスクリプトを実行し、各リポジトリ(関連コンテンツのバージョン番号)のデータを変更できます。その後、phpやpyをチェックアウトするときに、関連するコンテンツをチェックアウトすることもできます。 –

+0

なぜ別のリポジトリが必要ですか?通常、すべてのサブプロジェクトを1つのリポジトリにまとめるために、一貫したバージョン管理を行う方が簡単で簡単です。それらを分離しておく必要がある場合は、サブプロジェクトごとにトランク、ブランチなどを含む別々のサブディレクトリを使用できます。 – starblue

+0

コンテンツは、出入りするアプリケーション間で共有されるため、お互いに独立しています。独立して開発された共通のプロジェクトに依存しているため、同じリポジトリ(異なる開発モデル、開発者およびその他のもの)に存在する完全に別個のプロジェクトよりも、何も汚いとは思えません。なぜGNOMEはlibcリポジトリを共有していません; –

答えて

4

あなたはexternals

+0

ありがとうございます。外部プログラムを呼び出すことができないことを認識していませんでした。推測された(間違って)それは内部の出来事でした。 –

1

これはとても簡単です:ルートリポジトリに3つのフォルダを追加します(phpCodeRepo、pyCodeRepo、contentRepo)。 branchingも調べてみてください。あなたもhooks

を使用して実装することが

+0

これは(オプションの)rev増分を考慮していません... –

+0

私は各リポジトリを独立したsubversionベースにする必要があります –

4

svn:externalsを使用してチェックアウトするとき、あなたは答えであるかもしれない他のレポに引き出すことができます。しかし、それはフォルダレベルでのみ動作するので、複数のリポジトリ間で1つのフォルダを共有することはできますが、1つのファイルではできません。

+0

ありがとうございました。これを私の投稿に追加する前に私はあなたのコメントを見ませんでした...ごめんなさい。 +1 –

+0

ありがとう、Vadim、これは便利すぎるようです! –

+0

私はJohnsを答えにしています。主なポイントは、他のreposとの間のコンテンツのオプションの関係です。 :) –