プロジェクトのGitリポジトリを構築する方法は?


9

Drupalのコンテンツ同期モジュールに取り組んでいます。ウェブサイトに配置され、ウェブサービスを介してコンテンツを公開するサーバーモジュールがあります。別のサイトにあり、定期的にコンテンツをフェッチしてインポートするクライアントモジュールもあります。

サーバーはDrupal 6で作成されます。クライアントはDrupal 7で作成されます。Druapl7バージョンのサーバーが必要になるでしょう。そして、来年リリースされると、クライアントとサーバーの両方のDrupal 8バージョンが必要になります。

私はgitとソース管理にかなり慣れていないので、gitリポジトリをセットアップするための最良の方法は何だろうと思っていましたか?インスタンスごとに個別のリポジトリがある場合、つまり、次のようになります。

Drupal 6 server = 1 repository
Drupal 6 client = 1 repository
Drupal 7 server = 1 repository
Drupal 7 client = 1 repository
etc 

または、サーバー用のリポジトリとクライアント用のリポジトリを用意し、各Drupalバージョンのブランチを作成するほうが理にかなっていますか?

現在、私は2つのリポジトリを持っています-1つはクライアント用、もう1つはサーバー用です。

回答:


7

プロジェクトが本当に巨大でない限り、サーバーとクライアント用のサブディレクトリを持つ単一のリポジトリに行き、各バージョンのブランチを作成します。複数のバージョンに同時にアクセスする場合に備えて、リポジトリの複数のコピーを保持できます。

複数のリポジトリを維持することで、必要以上に変更を転送するのが難しくなります(リベースはパッチを適用するよりも簡単です)。(ありえない)ケースでは、複数のバージョンに適用される変更はありませんが、何も失うことはありません...

さらに、いつでも複数のリポジトリに切り替えることができます。リポジトリを複製して、不要なブランチを削除するだけです。逆に行くのは難しいです。

サーバーとクライアントが何も共有していない場合、またはコードが非常に大きい場合にのみ、複数のリポジトリを使用します。


Drupalは異なるバージョンをブランチとして保管するので、これは私が行く方法です。私も+1しますが、15人の担当者が必要です。
littledynamo 2012年

4

私はそのようなバリエーションを見てきました。サーバーとクライアントまたはそれぞれ1つのレポ用のサブフォルダーがある1つのフォルダー内のすべて。私は、プロジェクトのすべての主要部分に単一のリポジトリを好む。

バージョンが大きく変更された場合は、新しいリポジトリも作成します。間違いなくそれらのための異なるブランチはありません。ブランチは新機能の実装に強力であり、永続的な展開ブランチの1つである可能性がありますが、私は常に、それらの多くが長時間並列実行されることを避けています。常にそれらを維持する必要があります(masterブランチが変更されたときにリベースするなど)ので、基本的な構造をできるだけ単純にしてください。余分なレポを用意することは(私の考えでは)さまざまな州でブランチをジャグリングするよりも苦痛が少ないです。特にクライアントとサーバーが多くのコードを共有しない場合。

Drupalについて、そしてバージョン間の違いがどれほど強いかについては、あまり知りません。したがって、異なるリポジトリを好むという私のポイントは、Railsでの私の経験に基づいています。バージョン間では、ファイルの命名方法やフォルダー構造(例:アセットパイプライン)などに大きな違いがあり、新しいリポジトリを作成しやすくなります。Drupal(または他の任意のフレームワーク)の違いが少ない場合は、既存のリポジトリ内でそのまま続行しても問題ありません。


1
ありがとう。Drupal Coreモジュールが別々のバージョンをブランチとして保存していることを発見したばかりなので興味深いです。私はその構造を模倣することが理にかなっていると思います。私は+1しますが、15人の担当者が必要です。
littledynamo 2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.