我想开发一个由iOS
和Android
应用程序组成的应用程序。此外,还会有一个Web
前端,其中包含REST API和基础Database
。
每个模块都有一个开发人员团队,比如,一个开发人员团队为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中设置版本化依赖项。正确(参见[here](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
。同样适用于jvm
。所以这不是一个真正的解决方案。
或者您是否会建议,例如,iOS
开发团队不得不从origin/dev-web
合并?
任何提示/建议都表示赞赏。
干杯, /纳米
答案 0 :(得分:1)
我建议你的网络应用和移动应用之间的界限要比那更好。换句话说,您的移动应用不应与特定版本的网络应用紧密相关;您应该使用正确版本化和向后兼容的API。
有了这个,只需将应用程序保存在不同的存储库中就可以了。