Ubuntu Server 12.04 安装 SVN 并迁移 Virtual SVN数据
1、安装apache
sudo apt-get install apache2
2、安装svn和连接库
sudo apt-get install subversion sudo apt-get install libapache2-svn
3、增加svn用户组,用于管理svn,并加入到www-data的apache组:
sudo addgroup subversion sudo usermod -G subversion -a www-data
4、创建svn仓库文件,并初始化一个测试用途的仓库(在后面迁移时会用到)
# 一般可以将项目仓库建立到/home/svn目录 # 假设项目名为temproj,先建立空目录 $ sudo mkdir /home/svn $ cd /home/svn $ sudo mkdir temproj $ sudo chown -R root:subversion temproj #创建为svn项目,使用以下命令 $ sudo svnadmin create /home/svn/temproj # 然后才赋予组成员对所有新加入文件仓库的文件拥有相应的权限: # 如果命令顺序搞错,可能会报错,请参照官方wiki $ sudo chmod -R g+rws temproj
5、配置Apache。
# 在安装了libapache2-svn时会自动生成该文件 $ sudo vi /etc/apache2/mods-available/dav_svn.conf
<Location /svn> #/svn表示http://hostname/svn/ DAV svn SVNParentPath /home/svn #配置仓库父目录 AuthType Basic AuthName "Tebs Svn Server" AuthUserFile /home/svn/htpasswd #svn用户文件,便于迁移用户,直接将名称改为和virtual svn的命名一样 AuthzSVNAccessFile /home/svn/authz #授权访问文件 Require valid-user </Location>
因为用到了授权模块,所以还需要配置验证模块
sudo vi /etc/apache2/mods-available/dav.load
#在最后加入 LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
6、将Virtual SVN仓库目录下的文件都拷贝出来,并把htpasswd文件以及authz文件格式转换为unix格式,通过winscp或其他工具,上传到/home/svn目录下
7、将生成的temproj目录拷贝到windows中,并复制多个副本后,删除副本中的db目录。
8、将Virtual SVN仓库目录中的项目的db文件夹,拷贝到第7步生成的目录中。并用temproj\db\中的fsfs.conf替换到其他所有目录的相同位置。
9、将调整完的仓库目录,上传到/home/svn目录下。
10、上传完了之后,集体更改下用户组,并授权
cd /home/svn sudo chgrp -R subversion . sudo chmod -R g+rws .
11、最后重启apache
sudo service apache2 restart
至此,大功告成。。。