macbook下的svn服务的备份和恢复

因为之前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

 

作者: 汤汤

2002年-2005年在阿里巴巴,负责社区、搜索引擎开发,第一代SEO圈圈主。2006年至今在19楼,负责技术、数据、市场推广、产品规划。

发表评论

电子邮件地址不会被公开。 必填项已用*标注