作为更大 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 存储库。
这种方法对吗?有没有更好的方法?任何人在开发大量网络服务时都有类似的用例吗?
我们还考虑过创建某种逻辑分组并为该组创建 git 存储库,但我认为这是一个错误的策略,因为这会使我对单个服务的版本控制和标记变得混乱。git中还有其他方法可以管理这种分组吗?