我有一个相当大的CVS存储库,我希望只将一些模块转换为单个Subversion存储库。我已被正确引导使用cvs2svn进行转换,甚至可以构建我自己的选项文件。我不需要保留标签或分支,但我想保留修订历史记录。我的问题是我希望我的模块位于一个trunk文件夹下,例如svn / trunk / module1和svn / trunk / module2而不是svn / module1 / trunk和svn / module2 / trunk。当我将路径设置为空时,它会抛出有关路径为空的错误。有什么建议吗?
答案 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
(如果您的子模块已按所需方式排列,则可能甚至不需要复制和重新排列。)