大規模な SOA プログラムの一環として、Oracle Service Bus で多くの Web サービスを開発しています。現在、これらは SVN で管理されています。SVN を使用すると、個々のフォルダー レベルでタグとブランチを作成できるため、個々のサービスのバージョン管理を管理できます。以下は、私たちが従う典型的な構造です。
+- Services
|
+- Service1
| |
| +- tags
| |
| +- branch1
| |
| +- trunk
| |
| +- artefacts
|
+- Service2
| |
| +- tags
| |
| +- branch1
| |
| +- trunk
| |
| +- artefacts
|
+- service N
Git では、フォルダー レベルでのバージョン管理は絶対に許可されていません。150 以上の Web サービスがあり、それぞれに独自の開発サイクルがあり、デプロイ可能なものに組み込むことができます。私たちの現在の戦略を Git に直接マッピングすると、各サービスを git リポジトリとして保持し、git の原則にも従いますが、150 を超える git リポジトリを持つことになります。
このアプローチは正しいですか?より良いアプローチはありますか?多数のWebサービスの開発で同様のユースケースを持っている人はいますか?
また、ある種の論理グループを作成し、グループの git リポジトリを作成することも検討しましたが、個々のサービスのバージョン管理とタグ付けがうまくいかないため、それは間違った戦略だと思います。この種のグループ化を管理できる git の他の方法はありますか?