我正在恢复一个比较旧的代码项目,当我还经常使用CVS时创建的,现在将其作为一个组件用于我已经在使用git的新项目中。我仍然可以访问包含旧项目模块的CVS存档,所以我打算使用git-cvsimport获取提交历史记录,然后从那里开始进行。但是,这只会在当前仓库内创建一个新的git仓库。很可能我需要将其作为多步骤过程来完成,其中我先将其从CVS转换为全新的git仓库,然后再使用其他工具将其导入到现有的git仓库中。
在newproj/newsubdir中运行此命令($CVSROOT已在我的shell配置中正确设置):
在newproj/newsubdir中运行此命令($CVSROOT已在我的shell配置中正确设置):
git cvsimport -k -o master -u -s \- -A ~/Documents/cvs-authors.txt oldproj
这将为我创建一个全新的存储库newproj / newsubdir / .git /,其中包含所有正确的提交(注释,时间戳,历史记录),并将HEAD设置在我想要的位置。
我想要的是历史CVS提交看起来就像它们总是在newproj / newsubdir / oldproj-file1、newproj / newsubdir / oldproj-file2等中。根据我的经验,git有这种魔力可以做到这一点,但我找不到一个明显适合我情况的方法。