gpt4 book ai didi

git-submodules - darcs 相当于 git 的子模块?

转载 作者:行者123 更新时间:2023-12-04 11:59:37 24 4
gpt4 key购买 nike

所以是的,只是想知道 darcs 是否有任何与 git 的子模块等效的东西。

即假设我有一个 repo (myapp),并且我有一个名为 mylibrary 的文件夹。 mylibrary 与 myapp 的开发没有任何关系,它只是必须包含在内。 mylibrary 的开发发生在它自己的 repo 中,但是当有人拉取 myapp 时,它也会拉取最新版本的 mylibrary。有任何想法吗?

最佳答案

我的第一个想法:由于 darcs 比 git 更简单(即,没有分支和 Remote ——相反,您只使用目录和 URL,管理它们是您的任务),因此 darcs 子模块不会提供比您可以实现的更多的功能darcs repo 中的子目录或文件等标准内容。

  • 如果您需要一个子模块来修复所用库的源的某种状态,您可以简单地将库的 repo 的副本作为子目录并将其添加到项目的 darcs 中。与 git 相比,当有人获得您的 repo 时,这会导致数据传输膨胀。
  • 如果您需要一个子模块来告诉那些获得您的 repo 的人从哪里获取库的更新源(而不会使 repo 的大小膨胀),您可以简单地将 URL 和指令放入 README 文件或脚本中,或者任何。与git相比,缺点是你使用它时库的源代码的状态不会记录在你的提交中,所以人们可能会得到另一个版本的库,编译不会成功,而且不清楚为什么。

  • 因此,子模块真正有趣的目标可能不仅仅是告诉人们从哪里获取库源(正如您在问题中所写的那样),而是记录您实际用于编译项目的子项目的状态,并且不要为那些不想获得子项目来源的人膨胀你的 repo 。
    或许,这个目标也可以通过存储关于子项目状态的更复杂的元数据以及更复杂的钩子(Hook)来获得子项目的准确状态(或 - 通过选择 - 另一个状态)来实现。来自文档的 AFAIK,此类子模块没有内置机制。
    更新(在 darcs 网站上找到):
  • http://darcs.net/Ideas/Subrepositories ;
  • http://darcs.net/Ideas/NestedRepositories .

  • 因此,darcs 会注意到您工作中的另一个 darcs 存储库,它不会触及它。所以我上面建议的第一种方法是关闭(如果你把 darcs 元数据留在那里)。
    第二种方式就像在后一个链接的一部分中建议的那样。 (他们建议这样的“uglu”脚本。)
    另一个(第三)想法
    从您打算作为子模块的存储库中导入补丁,但首先将所有文件移动到子目录中。如果可以只应用一次这样一个移动的特殊补丁,如果它对所有补丁都有效,那么 进口 从作为子模块的 repo 开始,而不是从主 repo 的“分支”导入的补丁......
    ...嗯,它可能是 pull 的特殊变体命令(例如 import )和 push命令(例如 export )将另外相应地转换路径。

    关于git-submodules - darcs 相当于 git 的子模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6054118/

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