SVN服务器迁移

本文详细描述了如何在Windows2003环境下,从Subversion1.4.4升级到VisualSVNServer2.1.9,涉及版本库迁移、使用dump和load命令、用户权限设置、以及备份策略,包括使用svnadminhotcopy进行定期全量备份和客户端密码修改方法。
摘要由CSDN通过智能技术生成

SVN服务器版本号修改,WINDOWS2003下SVN服务端升级迁移

1. 升级前SVN版本库运行环境:

–Subversion 1.4.4安装目录:D:\software\Subversion

–Apache HTTPServer 2.0.54

访问端口:8080

–版本库存放路径:E:\SVNLIB

2.升级后SVN版本库运行环境:

VisualSVN-Server-2.1.9

集成:

– Subversion 1.6.17

安装目录:D:\Program Files\VisualSVN Server

– Apache HTTPServer 2.2.19

访问端口:8080

–版本库目录结构: G:\Repositories

VisualSVN Server 是一款免费的SVN服务器端系统,VisualSVN Server集成了Subversion和Apache,安装的时候SVN

Server已经封装为windws

service可以随Windows一起自动启动,Apache服务器的配置也只是在图像界面上,指定认证方式、访问端口等简单操作;另外,用户权限的管理也是通过图像界面来配置,使用起来非常方便。

a4c26d1e5885305701be709a3d33442f.png

操作步骤

第一步:

在Subversion的bin目录下使用dump命令导出旧SVN版本库

l

CMD打开命令窗口,使用命令操作版本库

l

版本库位置 E:\SVNLIB\SVNRepository

l

命令如下:

(导出的文件异常大,而且很耗时,37G的仓库导出后大概是61G,大约用2个小时时间)

第二步:

在版本服务器上安装VisualSvn

Server,按操作点击下一步,其中只需要注意下面这个界面可以自定义安装目录,和URL链接方式。

第三步:

在VisualSVN

Server的bin目录下使用create命令和load命令导入旧版本库

CMD打开命令窗口,使用命令操作版本库

#新建版本库

svnadmin create

G:\Repositories\SVNRepository

#版本库导入

svnadmin load G:\ Repositories\SVNRepository

< G:\TestBack\SVNRepositoryDumpfile

(导入过程异常缓慢61G的dump文件大概用了14个小时才完成导入)

使用VisualSVN Server导入旧项目的方法

先暂停原VisualSVN Server 服务将SVN仓库目录拷贝到新的VisualSVN

Server仓库目录下,使用VisualSVN Server的Import Existing Repository 菜单导入

第五步:

使用VisualSVN

Server 建立用户和用户组,配置用户组访问权限或直接导入原有权限文件。

在windows 环境下面,svn可以通过配置钩子函数(hook),实现一些很有用的功能,下面逐一作介绍。可以修改代码库下面的hooks 的所有以.tmpl 文件,这些文件都是svn提供的钩子模板。在windows环境下面通过批处理命令容易实现这样的一些功能。

强制要求提交日志

在每次提交的时候写明提交的目的是一个很好的习惯,Subversion默认没有提供,但是可以通过钩子实现:

将下面的代码存为pre-commit.bat放到版本库的hooks目录下即可,当你不写日志提交或者提交的日志内容少于5个汉字或10个英文字符就会报告错误。

@echo off

setlocal

set REPOS=%1

set TXN=%2

rem check that logmessage

contains at least 10 characters

svnlook log “%REPOS%” -t

“%TXN%” | findstr “…” > nul

if %errorlevel% gtr 0 goto

err

exit 0

:err

echo 提交必须填写日志!Empty log

message not allowed. Commit aborted!

1>&2

exit 1

修改完需要重启SVN服务

备份策略

svn备份一般采用三种方式:

1)svnadmin dump

2)svnadmin hotcopy

3)svnsync

注意,svn备份不宜采用普通的文件拷贝方式(除非你备份的时候将库暂停),如copy命令、rsync命令。

(实验证明从版本库中直接用windows copy或rsync命令copy出来的库根本不可用,因此最好是用svn本身提供的功能来进行备份。)

备份实现步骤

最终根据研究中心现实情况使用第二种svnadmin hotcopy方式进行备份。在G:\Repositories目录下建立两个批处理文件:Backpu.bat和SimpleBackup.bat编写脚本,并结合windows维护计划定期执行Backup.bat实现版本库定期全量备份。

Backup.bat脚本如下:

@echo off

set SVN_HOME=“C:\Program Files\VisualSVN Server”

set SVN_ROOT=“G:\Repositories”

set BACKUP_SVN_ROOT=“G:\Repositories_backup”

set BACKUP_DIRECTORY=�CKUP_SVN_ROOT%\�te:~0,10%

if exist �CKUP_DIRECTORY% goto checkBack

echo

�CKUP_DIRECTORY%>>%SVN_ROOT%/backup.log

mkdir �CKUP_DIRECTORY%

for /r %SVN_ROOT% %%I in (.) do @if exist “%%I\conf\svnserve.conf”

%SVN_ROOT%\simplebackup.bat “%%~fI” %%~nI

goto end

:checkBack

@echo �CKUP_DIRECTORY%

goto end

:end

SimpleBackup.bat脚本:

@echo 正在备份版本库%1…

@%SVN_HOME%\bin\svnadmin hotcopy %1 �CKUP_DIRECTORY%%2

@echo 版本库%1成功备份到了%2!

goto clean

:clean

del /Q �CUP_SVN_ROOT%\ModifiedBackup*.dump

goto end

:end

实现客户端修改用户密码

因为VisualSVN也提供收费的客户端软件,在客户端软件里有修改密码功能,但是我们使用的是免费的TortoiseSVN,所以需要手工配置客户端密码修改功能。需要用到ApachePasswd客户端修改密码程序包 Apache22Passwd.rar

操作步骤:

将mod_cgi.so copy到****\VisualSVN Server\bin目录下,这是cgi得以执行的必须包

在VisualSVN Server下创建cgi-bin目录,将文件Apache22Passwd.cgi及Apache22Passwd.cgi.ini复制到Apache的CGI脚本目录下,通常是cgi

-bin目录。(这句话中的x请用相应的版本代替,如for

apache2.0,则为Apache20Passwd.cgi)

如果是for apache2.2版本,复制apache的bin目录下libapr-1.dll、libapriconv-1.dll、libaprutil-1.dll到Apache2xPasswd.cgi所在的目录

修改配置文件Apache2xPasswd.cgi.ini中auth_user_file路径,如下

[path]

auth_user_file=这里改为你的Subversion所用的AuthUserFile全路径,如C:\SVN_repos\passwd

现在访问你服务器的http://localhost/cgi-bin/Apache2xPasswd.cgi就可以看到修改subversion密码的界面了。(一般为了简化路径的拼写,可以将Apcache22Passwd.cgi改为pwd.cgi 相应配置文件名也要修改)

打开IE浏览器输入可弹出密码修改页

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值