因为之前macbook的硬盘坏了,代码都存在svn中,需要重新建立svn服务器,并恢复代码。
一、启动svn服务
因为macbook下的svn服务是自带的,只需要在svn服务目录下,重新设置启动目录即可。命令如下:
svnserve -d -r /document/project/svn/
二、备份svn库
假设module是需要恢复的模块,备份路径是PATH,命令如下:
/usr/bin/svnadmin dump ./$module/ > ./$PATH/svn.$module.bak
显示
* Dumped revision 0.
* Dumped revision 1.
* Dumped revision 2.
* Dumped revision 3.
* Dumped revision 4.
* Dumped revision 5.
三、恢复svn库
首先需要新建一个新的module代码库
/usr/bin/svnadmin create $module
然后执行恢复命令,将svn备份导入到新的代码库中
/usr/bin/svnadmin load ./$module/ < ./$PATH/svn.$module.bak
显示
<<< Started new transaction, based on original revision 1
* editing path : trunk … done.
——- Committed revision 1 >>>
<<< Started new transaction, based on original revision 2
* editing path : branches … done.
——- Committed revision 2 >>>
至此,svn服务恢复完毕。在host文件设置svn的域名后,就可以通过TortoiseSVN访问了。
做一个批量处理的脚本
cat restore-old-svn.sh
#!/bin/bash
PATH=svn-backup-2016
MODULE=$1
if [ -z $MODULE ] ; then
echo ./restore-old-svn.sh \$module
exit
fi
/usr/bin/svnadmin dump ./$module/ > ./$PATH/svn.$module.bak
/bin/mv $module ./$PATH/$module-old
/bin/mkdir $module
/usr/bin/svnadmin create $module
/usr/bin/svnadmin load ./$module/ < ./$PATH/svn.$module.bak
/bin/echo Restore svn $module finish