某个项目的CVS仓库中现在有一个文件,需要使用SVN迁移到另一个项目中。我想保留提交的历史记录。
有没有办法做到这一点?
发布于 2010-09-04 05:59:57
如果这是一个新的Subversion存储库,那么它很简单:只需创建一个包含单个文件的伪CVS存储库(如下所述),并使用cvs2svn对其进行转换。
如果Subversion资源库已经存在,并且新文件将成为该资源库中新子项目的开始,则可以转换为Subversion转储文件(使用cvs2svn的--dumpfile选项),然后使用以下命令将其装载到现有资源库中
$ svnadmin load --parent-dir=/newproject /path/to/svnrepo <dumpfile.out
这将在Subversion中创建一个新的子项目,包括目录/newproject/trunk、/newproject/branches和/newproject/tag,并且(例如)您的文件的主干版本将位于/newproject/ trunk /myfile。
请注意,新文件的历史记录将作为Subversion存储库中已有提交的单系列Subversion提交进行迁移。因此,Subversion提交可能不会按时间顺序排列,这会破坏Subversion存储库中基于日期的搜索。
无论哪种方式,您都需要从创建一个包含单个文件的伪CVS存储库开始:
$ CVSREPO=$HOME/fakecvs
$ mkdir $CVSREPO
$ mkdir $CVSREPO/CVSROOT # This directory is needed by cvs2svn but can be empty
$ mkdir $CVSREPO/proj
$ cp /path/to/myfile,v $CVSREPO/proj/
然后使用cvs2svn从路径$CVSREPO/proj进行转换
$ cvs2svn [options...] $CVSREPO/proj
https://stackoverflow.com/questions/3637413
复制相似问题