Version control CVS虚拟模块&;到mercurial存储库的目录映射

Version control CVS虚拟模块&;到mercurial存储库的目录映射,version-control,mercurial,module,migration,cvs,Version Control,Mercurial,Module,Migration,Cvs,我的问题类似于Mercurial(使用cvs2hg转换)。但也存在一些差异。这是我们的CVSROOT/modules文件的一部分,很好地显示了问题: PD1 -a PROD/PD1/Drivers Drivers/PD1/Firmware KernelHeaders Shared IppLibs PD2 -a PROD/PD2/ Drivers/PD1 KernelHeaders Shared IppLibs #PD2Linux Driver PD2Linux PROD/PD2/Drivers

我的问题类似于Mercurial(使用
cvs2hg
转换)。但也存在一些差异。这是我们的
CVSROOT/modules
文件的一部分,很好地显示了问题:

PD1 -a PROD/PD1/Drivers Drivers/PD1/Firmware KernelHeaders Shared IppLibs
PD2 -a PROD/PD2/ Drivers/PD1 KernelHeaders Shared IppLibs

#PD2Linux Driver
PD2Linux PROD/PD2/Drivers/Linux/BuildFiles &PD2LinuxSource
PD2LinuxSource -d src &PD2 &PD2LibUSB
PD2LibUSB -d ThirdParty/libusb libusb
正如您所看到的,驱动程序结构非常复杂。我们确实希望合理化驱动程序结构,而不是将整个较旧的驱动程序(PD1)包含在较新的驱动程序中

据我所知,在Mercurial中,您可以使用共享扩展来进行子目录映射

我的问题是

  • 在Mercurial中,有没有一种方法可以像PD2Linux驱动程序的第一行那样,将目录树中较低位置的文件(在本例中是autoconf文件)带到根目录
  • 有没有办法按照
    -d
    标志创建目录
  • 如何合并跨PD1和PD2的变更集?
    • e、 g.如果PD2中的变更跨越了两个驱动程序,并在CVS中检入PD。这有点遥不可及,因为CVS没有变更集
    • 我想知道
      cvs2hg
      是否考虑了CVS模块文件
  • Atm I单独转换每个PD目录(在每个子目录中创建一个cvsroot),是否最好将它们全部转换在一起,然后将它们拆分为单独的hg repo
    • 你写:

      据我所知,在Mercurial中,您可以使用共享扩展来进行子目录映射

      不完全是。让我们将多个工作副本与单个存储库相关联—这不是关于重新映射(子)目录

      • 在mercurial中,有没有一种方法可以像PD2Linux的第一行一样,将目录树中较低位置的文件(在本例中是autoconf文件)带到根目录 司机
      这个问题和其他问题的答案是:没有。核心问题是Mercurial(和其他分布式版本控制工具)要求您每次都签出完整的存储库。您不能只克隆
      repo/some/dir/
      ,必须始终克隆
      repo/

      • Atm I单独转换每个PD目录(在每个子目录中创建一个cvsroot),是否最好将它们全部转换在一起,然后将它们拆分为单独的hg repo
      最终的结果应该是单独的Mercurial存储库——这正是因为您需要克隆完整的存储库。因此,请确保在存储库和驱动程序之间进行1-1映射

      您可能会发现一个有用的工具是。子存储库是一个嵌套存储库,当您克隆外部存储库时,Mercurial将签出该存储库。有一个,但大公司今天正在使用它们(我已经帮助许多公司建立了次级回购协议)。

      您写道:

      据我所知,在Mercurial中,您可以使用共享扩展来进行子目录映射

      不完全是。让我们将多个工作副本与单个存储库相关联—这不是关于重新映射(子)目录

      • 在mercurial中,有没有一种方法可以像PD2Linux的第一行一样,将目录树中较低位置的文件(在本例中是autoconf文件)带到根目录 司机
      这个问题和其他问题的答案是:没有。核心问题是Mercurial(和其他分布式版本控制工具)要求您每次都签出完整的存储库。您不能只克隆
      repo/some/dir/
      ,必须始终克隆
      repo/

      • Atm I单独转换每个PD目录(在每个子目录中创建一个cvsroot),是否最好将它们全部转换在一起,然后将它们拆分为单独的hg repo
      最终的结果应该是单独的Mercurial存储库——这正是因为您需要克隆完整的存储库。因此,请确保在存储库和驱动程序之间进行1-1映射

      您可能会发现一个有用的工具是。子存储库是一个嵌套存储库,当您克隆外部存储库时,Mercurial将签出该存储库。这些债券都有,但如今大公司正在使用它们(我已经帮助许多公司建立了次级回购协议)