linux下svn迁移目录操作
由于最开始创建svn数据存放目录的时候没有放到数据盘,后面因为项目数据增多了,导致svn数据目录满了,必须要处理了,否则svn都不能正常用了!
可以看到最开始,我是把svn数据目录设置在/var/svn下面的,现在有56G的数据,加上其他的数据,根目录的空间70G已经用完了。
查看磁盘可以看到/home目录下还有很多空间,可以把svn的数据转移过去,那该怎么转移呢,下面记录一下我的方法
1、用 svnadmin dump 命令来备份打包库数据,其中game为我的项目文件夹
svnadmin dump /var/svn/game > /home/game-backup.svn
操作成功,会看到如下显示:
2、在/home目录下创建新的库地址
svnadmin create /home/game
3、把备份文件还原到新的目录
svnadmin load /home/game < /home/game-backup.svn
还原的过程中,会输出这些内容,我这里只是模拟格式,不是真实的,仅供参考哈,等待还原完成即可
<<< Started new transaction, based on original revision 1 * adding path : xxxx ... done. * adding path : xxxx ... done. * adding path : xxxx ... done. * adding path : xxxx ... done. ..... ------- Committed revision 1 >>> <<< Started new transaction, based on original revision 2 * adding path : xxxx ... done. * deleting path : xxxx ... done. ..... ------- Committed revision 2 >>>
这时候如果你直接去客户端操作svn,是会报错的,例如:
因为我的/var/svn/game 这个目录名称我已经改了,为了和新目录区分,我改成了game_old,但是现在提示找不到game这个路径,但是我明明在/home/game 这里建立了呀,而且数据也迁移过来了,为什么呢
通过查看svn进程运行的情况发现,svn服务端设置的目录还是/data/svn(这里的/data/svn和我上面提到的/var/svn是一个概念,不要纠结为什么不一样),原来/hom/game这里只是一个数据仓库,并没有和svn服务端设置的根目录路径相匹配,所以客户端访问会提示找不到路径,这个时候就需要kill掉svn的进程,重新启动并修改路径为/home/svn(上面我没有建立svn目录,可以迁移之后再建立或者事先建立好都可以),这样客户端应该就可以正常使用了,迁移目录就完成了!