0

我想开发一个由一个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 

但是,通过这种设置,我遇到了管理模块之间依赖关系的问题。例如,所有模块都依赖于myapp-admFSD。此外,模块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. 对于jvm. 所以这不是一个真正的解决方案。

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

任何提示/建议表示赞赏。

干杯,/纳米

4

1 回答 1

1

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

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

于 2012-10-10T08:43:31.410 回答