项目组有两台服务器,现在要把存在服务器A上的SVN代码库(包含若干个项目的代码)迁移到服务器B上,简略记录下迁移过程.

1 首先查看服务器A上的SVN版本,远程连接A,命令行

svnserve -version


值得注意的是使用这些svn命令的前提是系统路径下添加了svn环境变量

2 接下来导出项目代码库

svnadmin dump d:\svn\project > d:\svnbak\project.dump


svnadmin dump 是svn自带的导出命令, d:\svn\project是要导出的代码库路径 d:\svnbak\project.dump 是导出文件的路径和文件名

3 在服务器B上安装svn并进行配置
下载SVN安装程序进行安装,一路next安装到缺省目录C:\Program Files\Subversion 环境变量会在安装过程中自动添加
安装完毕后命令行输入
svn help 或者 svnserve -version可以查看版本信息 说明安装完毕
接着设定目录和服务
根据需要 建立svn的目录 比如新建 E:\SvnRoot 文件夹 作为总的代码库目录
接着建立svn服务

sc create svn binPath= "C:\Program Files\Subversion\bin\svnserve.exe -service -r E:\SvnRoot" depend= Tcpip displayname= "SVN Serve" start=auto



sc create命令是windows中建立服务的,svn是服务的名字, binPath是设定svnserve的执行路径, -r E:\SvnRoot指定代码库目录,depend指定服务依赖tcpip协议, displayname设置在windos服务管理器中的显示名, start设置启动方式为随系统自启动

4 在服务器B上导入打包的代码库
使用SVN自带的命令

svnadmin load E:\SvnRoot\project < D:\Svnbak\project.dump


load命令就是导入库,之后是代码库路径 最后是导入文件的路径

5 修改配置文件
导入以后还需要修改一下配置文件 在项目的conf目录下有3个文件

authz 是配置用户权限的 可以直接复制原有代码库文件 把

[project:/] 

manager=rw 

user=rw


即项目名称片段下的用户组manager user权限设置成读/写 (根据实际情况修改)

passwd 是配置用户信息的 如
zhangsan=123
表示用户名zhangsan 密码 123

svnserve.conf 配置代码库属性 把下面几行代码前面的井号去掉即可

[general] 

anon-access = none 

auth-access = write 

password-db = /opt/svn/conf/pwd.conf 

authz-db = /opt/svn/conf/authz.conf



6 验证导入正确性
使用客户端连接svn库 地址形如 svn://192.168.x.x/project
能够连接并且可以提交 表示迁移完成