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

从cvs迁移到mercurial:分离项目

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

    我们有一个具有多年开发历史的cvs存储库,在一个项目(cvs文件夹)下有3个项目。这些应该是Mercurial回购中的不同存储库。它们采用以下方案:

    项目
    ---子项目1
    ---子项目2
    ——子项目3

    1. 在cvs2hg过程中,有没有一种方法可以实现自动化?
    2. 如果没有,那么在保持历史(如果可能的话)的同时分离每个子项目的灵活过程是什么?
    2 回复  |  直到 7 年前
        1
  •  2
  •   mhagger    15 年前

    只需运行三次cvs2hg,每次都将其指向cvs存储库中的项目子目录;例如,

    cvs2hg [OTHER-OPTIONS...] $CVSROOT/Project/SubProject1
    

    将结果写入三个单独的mercurial存储库。

        2
  •  6
  •   Ry4an Brase    15 年前

    最好的方法是将整个存储库从cvs转换为mercurial,然后使用 hg convert 用A命令 --filemap 将单一汞回购转换为多个汞回购(转换将从Hg转换为Hg)。您的文件映射将显示如下内容:

    include SubProject1
    rename SubProject1 .
    

    这将丢弃不在子项目1中的所有内容,然后将子项目1移到顶部(注意后面的点)。

    如果您为每个子项目运行一个文件映射,每次以完整的repo作为输入,您将得到您想要的结果。

    有些人已经构建了shell脚本来实现这一点,但是如果真的只有3个,那么应该非常快。

    推荐文章