svn安装配置迁移步骤
svn使用效果很好,真后悔没早点使用。还没有使用的同学建议尝试一下。
1、安装
# yum install mod_dav_svn subversion
2、创建仓库
# mkdir /var/www/svn
# cd /var/www/svn
# svnadmin create repos
# chown -R apache.apache repos
# /etc/init.d/httpd restart
3、导入
#svn import /tmp/mytestproj/ file:///var/www/svn/repos/mytestproj -m "Initial repository layout for mytestproj"
4、检出check out
#svn co http://yoursvnserver/repos/mytestproj
5、编辑、提交
#cd mytestproj
#vim configurations/testconf1.cfg -- Add or delete something and save.
#svn commit -m "Added a line to testconf1.cfg."
6、添加、删除
先#svn co http://yoursvnserver/repos/mytestproj
再#cp /etc/yum.repos.d/CentOS-Base.repo configurations/
添加#svn add configurations/CentOS-Base.repo
删除#svn delete configurations/CentOS-Base.repo
后#svn commit -m "Added the CentOS Yum repo file."
7、回退
查看历史版本号 #svn log http://yoursvnserver/repos/mytestproj
回退到历史版本号#svn co -r 1 http://yoursvnserver/repos/mytestproj
8、通过acl设置用户权限
为保证权限的完整性,采用拷贝的原svn权限文件。
9、svn数据迁移(dump-->load方案)
在做迁移操作前,请停止对svn进行提交操作。
9.1备份
在原svn上:
#svnadmin dump 版本库名 > svn_dump_版本库名
备份svn及配置文件的脚本:
$ more dumpsvn.sh
#!/bin/bash
cat dumpnamelist.txt | while read myline
do
echo "dumping app:"$myline
svnadmin dump /home/walk/svn/$myline > /home/walk/svn_dump/$myline.bak
echo "copying configure file:"$myline
cp /home/walk/svn/$myline.* /home/walk/svn_dump/
Done
#需备份的文件列表
$ more dumpnamelist.txt
79521
79522
9.2 恢复
在新svn上:
$ svnadmin create 版本库
$ chown -Rapache.apache 版本库
$ svnadmin load 版本库 < svn_dump_版本库
恢复svn及配置文件的脚本:
# more auto_load_svn_dumps.sh
#!/bin/bash
cat dumpnamelist.txt | while read myline
do
#create new repos
echo "---------------------------------------------------------------create new repos:"$myline
svnadmin create /var/www/svn/$myline
#modify the owner
chown -R apache.apache /var/www/svn/$myline
#load the dumped svn data
echo "---------------------------------------------------------------loading repos:"$myline
svnadmin load /var/www/svn/$myline < /root/svn_dumps/svn_dump/$myline.bak
Done
#copy auth and config files
echo "---------------------------------------------------------------copying configure files:"$myline
cp /root/svn_dumps/svn_dump/*.access /var/www/svn/
cp /root/svn_dumps/svn_dump/*.passwd /var/www/svn/
#modify the owner of all repositories
chown -R apache.apache /var/www/svn/
10、apache配置文件
[root@svn ~]# more /etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
#配置svn
#1
<Location /project>
DAV svn
SVNPath /var/www/svn/79522/
AuthType Basic
AuthName "svn authentication"
AuthUserFile /var/www/svn/79522.passwd
Require valid-user
</Location>
11、测试
采用原操作方式进行测试。