gpt4 book ai didi

git - Git 可以处理这种用例吗?

转载 作者:太空狗 更新时间:2023-10-29 13:38:59 26 4
gpt4 key购买 nike

我目前正在从 SVN 迁移到 Git。代码库是一个 10-15 模块的大型 Maven 项目。我们过去每个模块都有一个 repo。

我想知道我的 Git 存储库应该有什么架构来处理以下用例:

  • 用户可以 checkout 1..N 个模块。
  • John 提交并推送模块 M。Emma 从 super 文件夹中 pull 更改。
  • John 从 super 文件夹提交并推送模块 M 的更改。 Emma 从模块文件夹中提取更改。
  • John 将文件 A 从 M1 移动(使用 git mv)到 M2,提交并推送。 Emma 在提交前编辑文件 A 更新。文件已随着 Emma 的更改而移动。

我想到了“单一存储库”架构,但未处理 UC#1。 '子模块','subtree ' 和以前的 'one-module-one-repo' 无法处理 UC#4。

此外,如果大多数用例都由“子模块”架构处理,我想引入尽可能少的复杂性。子模块引入了分离头等概念,并可能在更频繁的错误后导致痛苦的修复。

我进行了广泛的搜索,我不确定在不引入太多复杂性的情况下是否可行,但我希望你们中的一些人一定已经找到了解决方法。

备注:我们当前的 SVN 架构无法处理这种用例。

非常感谢,马克西姆。

最佳答案

您的分析是正确的;没有明显的方法可以同时解决所有这些用例。我会建议两种方法之一:

  1. 第一个单独检查模块的要求实际上可能并不需要。使用 git,您只需在执行初始克隆时支付一次 checkout 费用,但之后的增量更新非常快。
  2. 如果您正在处理 Maven 模块,也许每个模块都有自己的发布周期,那么这些模块真的需要源级别关系吗?如果不是,那么模块依赖关系可以单独在 Maven 中表示。

实际上,您可能应该从单个存储库开始,然后在您认为有必要时将其拆分出来。但你可能不会。 :)

关于git - Git 可以处理这种用例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11507298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com