我想开发一个由iOS
和Android
应用程序组成的应用程序。此外,还将有一个带有REST API和底层Database
的Web
前端。
每个模块都会有一个开发团队,比如说,一个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-ios
和myapp-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,他们使用。
有了这一点,简单地将应用程序保存在单独的存储库中就很简单了。