2012-02-22 2 views
1

私は現在gitに変換中のSVNリポジトリがあります(30Kコミット)。私たちのコードベースは、現在共通の(コア)コードセットと2つの別々のベース(Javaと.NET)を持っています。これにより、共通のコードを共有するだけでなく、2つの言語のいずれかをサポートする顧客にビルドをプッシュする際に、異なる言語を使用することができます。gitの移行のためのリポジトリレイアウトの計画

現在、SVNリポジトリは、共通コードと言語固有のコードを使用するチェックアウト時に特定のレイアウトを生成するためにsvn:externalsを大量に使用しています。次のように

Aはリポジトリレイアウトのバージョンではストリップダウン:現在

Core 
+ 
+-->classes 
+-->public_html 
    +>admin 
    +>web 
     +>images 
     +>javascript 
     +>styles 

Java 
+ 
+-->public_html 
    +>web 
     +>includes 
     +>code 


.NET 
+ 
+-->public_html 
    +>web 
     +>includes 
     +>code 

私はSVNでトランクからチェックアウトするとき、私はサブフォルダをチェックアウトする場合、私は、Java(ただし、ディスク上の上記のレイアウトを取得します、または.NET)、SVN:見た目は私に次のようなレイアウトを提供します:

Java/.NET 
+>classes 
+>public_html 
    +>admin 
    +>web 
    +>code 
    +>javascript 
    +>images 
    +>includes 
    +>styles 

また、これは私がそのフォルダ内のコードを編集できるようになる、とチェックインを行うと、リポジトリ内の正しい場所にコミットします。

私の質問は、サブモジュールやその他の方法を使ってgitで達成できるかどうか、あるいはレイアウト全体を再考する必要があるかどうかと、ビルドを作成するためのブランチのチェックアウト。サブモジュールでこれを行うことができれば、私は標準的なサブモジュールのチュートリアルに従うべきでしょうか、それとももっと深いところがありますか?

ありがとうございます!

答えて

1

サブモジュールを持つ正確なディレクトリ構造は、それぞれが親リポジトリ内の独自のディレクトリに置かれるため、正確なディレクトリ構造は得られません。
(「True nature of submodules」で説明したように、そしてあなたがそれらに直接変更を行うことができます)Ieは、あなたが(代わりに、1つの混合「public_html」の)

Java 
+ 
+-->public_html 
*-->Core 
     + 
     +-->public_html 

になるだろう、私はまだサブモジュールをお勧めします。
ただし、そのままにしてくださいgit submodules are quite different from svn:externals

Javaレポ(コアリポジトリへの参照を含む)をチェックアウトしたら、のシンボリックリンク(UnixまたはWindowsで利用可能)で正しいディレクトリ構造を再作成します。

関連する問題