【发布时间】:2014-09-26 22:16:29
【问题描述】:
知道何时将一组相关和/或内聚的应用程序拆分为 git repo 和/或分支的决策树是什么?我应该将每个应用程序保存在回购中吗?还是单个仓库中的所有应用程序和依赖项?还是介于两者之间?
answer How should I organize multiple related applications using git? 声称每个项目都有一个存储库是合适的,但没有提供关于项目是什么的线索。
当 git 存储库被拆分时,还有开发、测试、集成测试和生产检查的问题。回答how do you organize your programming work 列出了一些分支/标签选项,但忽略了多应用详细信息。
还有数据库架构!架构的增量定义会有所帮助,但同样,如果数据库跨越后端和前端应用程序,那么该定义将保留在哪里?
我一直在思考的一些例子:
- 前端 Web 应用和后端 CGI/DB:一个或两个 repo?
- 一组使用其他后端功能的 Web 后端
- 一组共享 CSS 和 jquery 插件的前端应用程序
- 跨依赖代码测试前端功能的 selenium 脚本 - 在前端应用程序存储库或依赖代码存储库中?
如果我想在单个应用程序上工作,则很难(嗯,乏味且容易出错)检查 repo 的目录,所以我必须检查整个 git 树(或至少克隆整个树),因此这意味着 git 并不是真正为将所有应用程序的 & 依赖项保存在单个树中而构建的。
但是,如果我想将每个项目(应用程序、框架、依赖项、文档树、CSS)保留在自己的存储库中,那么我就会陷入追逐依赖解决方案的问题,也就是说,我不知道是哪个每个应用程序的版本都兼容。我认为 git 标签是一个不错的选择,只要我可以将它们移动到保持兼容性的新版本。
当应用程序的拆分或合并时——就像将模型重构为基本模型时经常发生的那样——我可以将这些文件的 git 历史记录移动到另一个 git 吗?我不知道如何做到这一点,所以这倾向于一个单一的回购。
如果我跨应用开发新功能,分支代表功能会很好。
我想我想要一个 repo 的 repo —— 存在吗?
【问题讨论】:
标签: database git github version-control development-environment