【发布时间】:2013-03-22 08:20:12
【问题描述】:
谁能解释一下如何将以下系统引入 git 之外,即通过分支和子模块使用版本号而不是 git 的上下文:
假设我们在 项目 git repo 中有一些工具。资产位于 assets 存储库中,并且由于数据(组织、命名、数据字段数量等)会随着时间而变化,而且工具也必须更新以应对这些变化,因此我们想让 asset 存储库成为 project 存储库的子模块。这让我们可以执行诸如分支 project 之类的事情,签出旧版本,并让资产及时返回以匹配,因此工具和数据随着时间的推移保持同步。例如,这让我们可以检查一周前的所有内容。
这也意味着我们可以有一个疯狂的想法来重塑数据以在特定工具中实现新功能,我们可以分支 project,然后分支 assets 和在 project 的新分支中,我们可以检查 assets 中的新分支,并有效地分别处理所有内容。如果有真正的工作,我们可以直接跳回 project 的 master,然后资产更新以跟上。如果疯狂的新数据结构成功了,我们可以分支(或重用第一个分支)并使其他工具与新数据保持一致,当一切正常时,我们可以将所有内容合并回来,而不会中断任何人(提供的接口没变)。这似乎是一个不错的工作流程,它将资产与工具分开,因此各个部门都可以使用它们,而无需大量甚至无法在他们的系统上运行的工具库,而且我可以在没有大量工具的情况下删除这些工具如果我只想处理一些与笔记本电脑上的资产分开的逻辑。
使用包和版本号是否有任何接近这种复杂性和灵活性的东西?我从未使用过它们,但我一直觉得如果我想将工具从 git 中分离出来以便在其他地方分发,同时保持相互依赖关系,我就需要这样做。人们如何解析 git 和包版本号?我已经研究了一段时间了,但我仍然对它感到很困惑。
【问题讨论】:
标签: git package version git-submodules