替代cvs2svn执行CVS使用svn迁移
题
我想从CVS执行迁移使用svn这是运行OS X Server的我我们的全新Xserve服务器上。存在这样来预安装了OS X的误差是cvs2svn和DBM库之间的已知冲突:
错误:cvs2svn使用anydbm包,它依赖于较低水平的dbm库。您的系统有一个DBM,与cvs2svn是已知有问题。要使用cvs2svn,您必须安装比dumbdbm或DBM等一个Python DBM库。请参见 http://python.org/doc/current/lib/module-anydbm .HTML 获得更多的信息。
我遵循所有在 cvs2svn常见问题解答规定的步骤,但错误依然存在。有谁知道的另一种方式来完成这项任务,或者另一个网站,提供了不同的解决方案,这个看似普通的问题?
解决方案
由于CVS和Subversion版本库其实只是文件的集合,一个方法可以解决这个问题可能是你的CVS存储库复制到一台机器,其中cvs2svn可以成功运行,运行它转换到Subversion,然后再复制新库回您的服务器。这种方法的好处是,你将无法运行小心搞乱了你的服务器配置,而这样做转换步骤的风险。
其他提示
cvs2svn本身是MacPorts的这么用,而不只是DBM库,你可以使用MacPorts的安装cvs2svn:
port install cvs2svn
如果尚未安装,它还将安装的python2.5和其他依赖的MacPorts的版本。有,完全没有副作用,但它会需要一点时间,一点点额外的空间。其优点是,你应该有一个工作,支持的版本,而不必再拼依赖问题。
您总是可以手动安装使用例如其他的dbm库MacPorts的。
如果您已经安装了颠覆,你确保该路径在您的系统变量设置正确?
我有同样的问题,在我的,我最后不得不加入PYTHON_HOME和路径变量使用
C:\ Pyton27 \
也许听起来有点疯狂的或矫枉过正,但考虑使用'git的人(例如MacPorts的版本)。它克隆完整的CVS历史和它推到一个Subversion版本库。下面的步骤应该做的工作(看命令的手册,帮助混帐'cmd'):
port install git-core cvs cvsps svn (if necessary) create directory for git and init cvs git repo (let´s say ´cd ~/cvsgit´): git cvsimport -v -d CVSROOT module create new subversion repository (svnadmin) with trunk, tags, branches now import this new repository to a git repository: git svn clone -s file:///path/to/svnrepo (without trunk, tags, branches) this creates a svnrepo directory; rename and move it to e.g. ~/svngit now add the cvs git repo to svn repo: cd ~/svngit git remote add cvsrepo ~/cvsgit git fetch cvsrepo now merge the cvs master branch to the local svn master branch: git merge remotes/cvsrepo/master finally commit to (real) svn repository: git svn dcommit
您就大功告成了!