将许多CVS模块转换为单个SVN存储库

时间:2010-09-30 19:35:21

标签: svn version-control cvs cvs2svn version-control-migration

我有一个相当大的CVS存储库,我希望只将一些模块转换为单个Subversion存储库。我已被正确引导使用cvs2svn进行转换,甚至可以构建我自己的选项文件。我不需要保留标签或分支,但我想保留修订历史记录。我的问题是我希望我的模块位于一个trunk文件夹下,例如svn / trunk / module1和svn / trunk / module2而不是svn / module1 / trunk和svn / module2 / trunk。当我将路径设置为空时,它会抛出有关路径为空的错误。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

  

我的问题是我希望我的模块位于单个trunk文件夹下,例如svn / trunk / module1和svn / trunk / module2而不是svn / module1 / trunk和svn / module2 / trunk。 [...]有什么建议吗?

为什么不按原样导入结构并稍后在存储库中移动?毕竟,移动物体的能力是SVN相对于CVS的最大优势之一。 (事实上​​,这种结构变化在历史上可以被视为优势。)

答案 1 :(得分:0)

最简单的方法是制作CVS存储库的副本,然后(在副本中)按照您希望它们最终生成的Subversion存储库的方式移动目录。然后转换为单个项目,将cvs2svn指向重新安排的存储库中的相应目录。 E.g:

mkdir $CVSCOPY/proj
mv $CVSCOPY/path/to/module1 $CVSCOPY/proj/module1
mv $CVSCOPY/another/path/to/module2 $CVSCOPY/proj/module2
cvs2svn [OPTIONS] $CVSCOPY/proj

(如果您的子模块已按所需方式排列,则可能甚至不需要复制和重新排列。)