对于异构应用程序来说,什么是好的Git开发模型



我想开发一个由iOSAndroid应用程序组成的应用程序。此外,还将有一个带有REST API和底层DatabaseWeb前端。

每个模块都会有一个开发团队,比如说,一个iOS的开发团队,一个用于Android的开发团队和一个用于Web/Db的开发团队。

我对设置的第一个想法是以下存储库:

myapp-adm ~ Project administrative stuff (e.g. FSD, project plan, ...)
myapp-ios ~ iPhone App
myapp-jvm ~ Android App
myapp-web ~ Web/Db 

然而,通过这种设置,我遇到了管理模块之间依赖关系的问题。例如,由于FSD,所有模块都依赖于myapp-adm。此外,模块myapp-iosmyapp-jvm依赖于myapp-web:

myapp-ios <- myapp-web <- myapp-adm  
myapp-jvm <- myapp-web <- myapp-adm

我可以用Git子模块(部分)解决这个问题,但据我所知,无法在Git中设置版本依赖关系。对(参见[此处](http://stackoverflow.com/questions/12813250/how-to-stick-a-submodule-to-a-fix-a-tag"如何将子模块粘贴到修复标签上?")?例如:

v1.0.3           v1.0
myapp-ios <------ myapp-web <---- myapp-adm  
v1.0.3            v1.0
myapp-jvm <------ myapp-web <---- myapp-adm

除了这种利用Git子模块的潜在设置之外,我想知道是否还有另一种利用Git分支的"一个存储库"方法。例如:

origin/master  ~ HEAD reflects production-ready state.
origin/dev-ios ~ HEAD reflects the latest iOS development changes for the next release
origin/dev-jvm ~ ...
origin/dev-web ~ ...

我在这里遇到的问题是,iOS的开发依赖于web的开发,但web开发人员致力于origin/dev-web。CCD_ 15也是如此。所以这并不是一个真正的解决方案。

或者你会建议,例如,iOS开发团队必须不断地从origin/dev-web合并?

如有任何提示/建议,不胜感激。

干杯,/nm

我建议在你的网络应用程序和移动应用程序之间有更好的界限。换句话说,你的移动应用程序不应该与特定版本的网络应用程序紧密相连;您应该有一个正确版本和向后兼容的API,他们使用。

有了这一点,简单地将应用程序保存在单独的存储库中就很简单了。

最新更新