svn安装备份完全解决方案
本文解决svn的安装,apache的搭建,svn库的自动化网络备份问题。因为自己用的是ubuntu,就只介绍ubuntu的啦。
安装搭建部分:
1.先安装apache,配合阅读svn用,并且平时开发时候也是要经常用到的,所以就一起安装了
sudo apt-get install apache2
2.再安装svn与svn中apache的库
sudo apt-get install subversion
sudo apt-get install libapache2-svn
3.创建项目仓库,我的例子是micolog:
sudo mkdir /svnroot
sudo chmod a+r /svnroot
svnadmin create /svnroot/micolog
sudo chmod –R a+rwx /svnroot/micolog
4.因为是在自己的个人pc上面,就配置简单一些,不设置密码。修改配置文件/svnroot/micolog/conf/svnserve.conf在[general]中加入auth-access = write
5.配置svn服务随系统启动
创建/etc/init.d/svnserve文件,文件中包含如下内容:
#!/bin/sh
/usr/bin/svnserve -d -r /svnroot/
执行
sudo chmod a+x /etc/init.d/svnserve
在启动阶段2中启动,具体配置方法为运行命令:
cd /etc/rc2.d
sudo ln –s /etc/init.d/svnserve S92svnserve
这样,svn就会随系统在开机时候启动啦。可以自己手动运行一下立即启动,将项目导入到svn库中使用svn import命令,这里就不再赘述了
6.配置apache
执行下面的命令,配置apache启动时加载dav模块
cd /etc/apache2/mods-enabled
sudo ln –s ../mods-available/dav.load dav.load
sudo ln –s ../mods-available/dav_svn.conf dav_svn.conf
sudo ln –s ../mods-available/dav_svn.load dav_svn.load
编辑文件/etc/apache2/sites-available/default,在虚拟主机中,加入如下内容
DAV svn
SVNPath /svnroot/micolog
执行
sudo /usr/sbin/apache2ctl restart
就可以在http://localhost/micolog访问svn库了,编辑一下/var/www/index.html文件,加上个链接,可以使自己方便些。
因为这个实在几个月之前装系统时候搞的了,自己记得也不是很清楚了,有错误的话,就留言问我吧:p
自动网络备份:
在你的home文件夹(输入cd回车就进入了)中建立cron目录,建立一个svnbackup.sh文件,内容如下:
#!/bin/sh
projects=”micolog redirecter”
svnroot=”/svnroot”
backdir=”/home/yanp/Dropbox/code/svnbackup”date=`date +%Y%m%d`
for project in $projects
do
/usr/bin/svnadmin dump $svnroot/$project > $backdir/${project}_$date
done
其中projects里面可以配置你的多个工程。
执行crontab -e,输入如下内容:
0 22 * * 6 (cd /home/yanp/cron && /home/yanp/cron/svnbackup.sh)
/home/yanp/cron/是home文件夹的路径,记得添加时候修改。
dropbox是一个跨平台的,多pc自动同步文件软件,在国内的下载速度可以达到500kB以上(公司的网络比较快哈,在家里用,一般就是133kB),十分强大。就用它来备份svn库再好不过了。注册账号,下载软件
这样就全都搞好了,每周六的22点就会自动帮你备份好svn,dropbox也会帮你把svn库传到你的账号中存好。如果你在自己的多台电脑上都安装了dropbox,每台电脑都会自动拥有svn备份数据(dropbox网络上也有一份)。想修改备份的时间,请参考crontab
您可能会喜欢:
目前我还没用上!
大家出来 的和google上的一样吗?
@houkai
没明白
哦 现在错字太多了
google code上面不是也有版本控制。另一个较出名的是sourceforge.net。
我的意思google code的版本控制和你搭建的svn相似吗?或者说是一个东西吗?
google code上面也有svn的方式,看它那个整体的配套情况,比自己搭建svn还要好一些。但是那个上面必须是开源的代码