代码之家  ›  专栏  ›  技术社区  ›  Schwern

把一个独立的项目合并成一个更大的项目而不失去历史

  •  2
  • Schwern  · 技术社区  · 15 年前

    我有一个独立的项目,cpan模块 ExtUtils::MakeMaker . 它还活着 inside Perl . 一般来说,makemaker会发布一个版本,perl会将这个tarball集成到它的存储库中。但有时perl会更改makemaker的副本,而这些更改必须进入cpan存储库。此外,perl中makemaker的历史也比github中makemaker的历史要早。

    与其有两个存储库,不如有一个。也就是说,只需直接提交给perl5.git/cpan/extutils-makemaker。这解决了发布集成问题。问题变成了保存历史,代码考古学对makemaker非常重要。github存储库拥有makemaker的大部分历史。git有自己的makemaker历史,也很独特和有趣。这两段历史重叠。

    问题是:如何将github makemaker存储库合并到perl存储库中,同时保留历史以供考古使用?最好是一个解决方案,它不需要手动完成单个更改(有数千个)。

    谢谢您。

    3 回复  |  直到 15 年前
        1
  •  2
  •   Jakub Narębski adamtaub    15 年前

    你可以使用 子模块 ,或者您可以使用 子树 合并(也许在第三方的帮助下 git subtree 工具)。

        2
  •  0
  •   VonC    12 年前

    注意:自git1.7.11(2012年6月)以来,有第三个选项 git subtree script (以前) developed on GitHub 通过 apenwarr ,现在合并为主线git)

    这样,您可以将一个repo(及其历史记录)合并到另一个repo中,并保留以后提取其历史记录的选项(与子树合并相反)。

        3
  •  -2
  •   Omar Al Kababji    15 年前

    检查存储库是否允许您 标签 分支 你的代码,看看它们到底是什么,它们肯定会解决你的问题;-)

    当做。