问题描述
|
我有一个巨大的CVS存储库,我想将其转换为几个hg存储库。这个问题是相似的,但是我使用的是
hg convert
,我在cvs中有多个目录,这些目录应该放在给定的hg存储库中。这是一个例子:
/sw
.../dir1
.../dir2
.../dir3
.../dir4
.../dir5
我想在我的hg仓库中使用dir1,dir2和dir4,但是dir3可以与dir5在另一个没人使用的单独目录中一起腐烂。
我一直在用hg convert --branchsort sw
转换整个内容,其中sw
是一个沙箱签出,仅包含我关心的目录。这为我提供了一个1.7GB的hg存储库,其中包含所有4个目录。 CVS存储库为2.3GB,但沙箱仅为159MB。 hg repo的历史可以追溯到1997年,真是太棒了,但是其中的某些东西来自已停产的产品。他们不需要位于常规的开发人员沙箱中。
那么,有没有办法挑选CVS目录进入我的新hg存储库?
解决方法
您应该在链接的那个问题上听取我的建议。将所有内容一起转换,然后使用hg-> hg转换使用文件映射选择每个回购中所需的部分。任何将为空的修订版本(只有该会话中不包含的文件)都将被忽略。
另外,从hg到hg的转换要快得多,因此您只能执行一次缓慢的CVS转换,然后一次又一次地进行hg到hg的转换,直到对结果满意为止。
,您可以访问CVS存储库存储吗?
如果是,那么您应该能够完整复制存储库,删除所有您不想转换的文件/目录,然后运行“ 0”,并从本地存储库中检出工作目录。
我说应该,因为我还没有尝试过,但是由于CVS按文件存储修订历史记录,因此我没有理由不应该这样做。它不适用于Subversion之类的SCM,后者将多个更改存储在一个修订中。