Version control 是否有办法用其内容(包括历史记录)压平/取代mercurial Subrepo

Version control 是否有办法用其内容(包括历史记录)压平/取代mercurial Subrepo,version-control,mercurial,Version Control,Mercurial,我想看看是否可以从源代码树中删除Subrepo 使用我们的源代码树。我们有两个次级回购协议,它们的最初用途早已过去。我想用一个包含整棵树的单一回购来代替它们。这将改善提交、搜索历史记录和性能方面的工作流程,因为只需要推/拉一棵树,防止分支不同步引起的问题,并使heptapod等工具更加可行 我想保留所有回购协议的历史记录。我想尝试的解决方案是: 导出每个回购的每个变更集 使用添加的子repo中的匹配变更集更新根repo中的每个变更集 为根repo创建空变更集,其中子repo中没有匹配的变更集

我想看看是否可以从源代码树中删除Subrepo

使用我们的源代码树。我们有两个次级回购协议,它们的最初用途早已过去。我想用一个包含整棵树的单一回购来代替它们。这将改善提交、搜索历史记录和性能方面的工作流程,因为只需要推/拉一棵树,防止分支不同步引起的问题,并使heptapod等工具更加可行

我想保留所有回购协议的历史记录。我想尝试的解决方案是:

  • 导出每个回购的每个变更集
  • 使用添加的子repo中的匹配变更集更新根repo中的每个变更集
  • 为根repo创建空变更集,其中子repo中没有匹配的变更集
  • 用某种“.hgsub{repo,state}”替换.hgsub{repo,state}”
  • 创建一个新的hg树
  • 将每个变更集导入到新树中

我只是想知道已经有一个工具可以做这样的事情了。否则我会看看我能不能自己做一个。(扫除旧的python技能)

您是否尝试过将子回购协议视为独立的来源?它还提到了使用
hg convert
,如果出于某种原因,这可能会起作用。我认为,使用该解决方案,我们只需将子回购内容移动到主回购中的正确位置。从主回购中删除子回购,然后合并所有三个子回购。我试试看,这样我就不必做任何历史编辑了。