项目组有两台服务器,现在要把存在服务器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
能够连接并且可以提交 表示迁移完成