1. 预备
1) 下载安装包CollabNet Subversion Edge 2.2.1,地址http://www.open.collab.net/cn/downloads/subversion/
2) 备份数据
3) 安装程序
2. 在目标服务器上安装Subversion Edge,可以使用最新版2.2.1。也可以仍然使用2.0.1。理论上没有影响。
3. 管理页面重新指定基础选项
· 主机名: 域名全称
· 端口: 标准端口可能需要额外设置。
· 版本库父文件夹: 包括所有版本库的父文件夹。
· IP 地址:
· 网络接口:
· 管理员:
· 管理员电邮:
4. 数据迁移
a) 停止相应服务或者停止单个库
b) 把相应的repository从旧服务器复制到新服务器
c) 把commonscript从源服务器的库父文件夹复制到新的文件夹中。
d) 在每个repository目录下的hooks中的bat文件修改python.exe的路径,指向{安装目录}\Python25
e) 启动新服服务器
f) 在”版本库”页面选择”发现版本库”
*注: 我的SVN库中使用了python脚本做为hook,所以需要相应的script目录和bat路径,如果不用hook,或者hook用其他方式实现,就可以使用其他方法了。
5. 用户迁移
a) 停止SVN和SVn Edge服务
b) 备份需要修改的文件
c) 修改SVN用户名和密码:从原始机器中拷贝{安装路径} \data\conf下的文件,特别是svn_auth_file。
d) 修改SVn Edge用户名和密码
i) {安装路径}\data\csvn-production-hsqldb.script
ii) 修改USER表内容
(1) 如果版本相同,从里面copy类似INSERT INTO USER VALUES(1,2,'admin user','admin@example.com',TRUE,'f52c7457507a292a11bf8d274d720ee4','Super Administrator','admin')语句到新服务器的对应文件。
(2) 如果版本不同,根据CREATE MEMORY TABLE USER的内容调整对应列的内容。2.0.0和2.2.1的格式就不同,在script文件中可以找到。
iii) 修改USER表ID的起始值ALTER TABLE USER ALTER COLUMN ID RESTART WITH 55。可以从旧文件复制
iv) 调整ROLE_PEOPLE表数据,复制INSERT INTO ROLE_PEOPLE VALUES(xx,xx)的所有行
e) 重启启动服务,或者重新启动服务器
6. 设置用户权限
a) 通过管理页面拷贝或者使用{{安装目录}\Data\conf\svn_access_file
7. 修改路由器对应端口映射,对外提供服务
8. 官方的迁移指南见https://ctf.open.collab.net/sf/wiki/do/viewPage/projects.svnedge/wiki/MigrationPath