各位老铁们好,相信很多人对svn服务器迁移都不是特别的了解,因此呢,今天就来为大家分享下关于svn服务器迁移以及TortoiseSVN的服务器如何转移到另一台电脑的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
一、TortoiseSVN的服务器如何转移到另一台电脑
迁移的3种方法:
1、拷贝原库的目录到另一台服务器,然后启动服务,即可使用。
2、使用备份命令svnsync备份的目标库,与copy的区别在于版本号0,需要重新配置下权限,启动服务,即可访问;
3、在另一台服务器上create一个新库,使用命令行:svnadmin dump旧库路径|svnadmin load新库路径,启动服务后,即可访问;
迁移之前,通知使用库的所有人员,先行暂停对版本库的操作,然后停止该库的svn服务(若svn服务为命令行窗口,关闭即可;若为系统服务,cmd-〉services.msc,找到对应库的svn服务,右键菜单“停止”)。
二、「SVN迁移」SVN迁移服务器代码,包含全部提交日志
问题描述:
公司需要将一个SVN远程服务器的全部已有项目迁移到一台新服务器的SVN中,其中需要包含全部的提交日志,目前此工作已全部迁移完毕,特此记录一下操作步骤
环境描述:
1.要迁移的远程SVN的 Windows服务器
2.迁移目的SVN的Windows服务器
操作流程:
1.使用SVN备份功能导出原先的SVN仓库文件
2.将SVN文件复制到新的服务器磁盘中
3.在新的服务器创建新SVN仓库
4.加载导出备份文件即可
建议后面的路径中间均不要有空格,不然使用一些命令时容易有问题
因为导出的SVN历史文件可能很大,推荐使用U盘复制和备份后操作
操作步骤:
1.用windows的cmd命令框CD进入到VisualSVN Server的安装目录下的bin目录,使用命令生成svn仓库的备份
此命令:第一个路径是svn仓库路径,第二个是备份的路径。
svnadmin dump D:svnRepositoriesdxd> D:SVNBackupdxdBackup20220319.dump
2.复制导出的dump到新的SVN服务器,这个文件建议备份一下,算是留档了哈,在新的服务器中创建一个新的SVN仓库,名字可以与原来的不同不耽误备份导入
3.加载这个dump备份文件。同样在新服务器的VisualSVN Server的安装目录下的bin目录,使用CMD命令加载新的SVN仓库中。
svnadmin load D:svnRepositoriesdxd< D:BackupdxdBackup20220319.dump
三、如何做SVN迁移
SVN迁移可能有很多原因,可能是我们想换Repository目录,或者是想换一台机器,等等.
SVN迁移很容易做,按照下面步骤就可以:
1.将原来的Repository导出为一个文件dumpfile
> svnadmin dump path/to/old-repo> dumpfile
2.创建新的Repository,创建方法可以参考 Windows平台安装Subversion server
3.将dumpfile导入到新的Repository
> svnadmin load path/to/new-repo< dumpfile
4.检查新的Repository的conf/目录下的配置文件,检查hooks/目录下的构子程序等等...
本机SVN的快速迁移方法:(感谢R2的提示)
svnadmin hotcopy old_rep_path new_rep_path
-----------------------------------------------------
两台服务器,进行SVN的迁移:
系统平台:windows server 2003
版本库:test
源服务器:192.168.1.14
目标服务器:192.168.1.12
源SVN版本库的path: D:\svn\test
要迁移到的path: E:\svn\test
第一种方法:(推荐)
首先说明:这个目标服务器上的SVN是可以用,本文中只是将它们的版本库进行
迁移。
1.停止服务,本文中用的是apache(源服务器)(目标服务器)
2.cd C:\Program Files\Subversion\bin(Subversion的安装目录)(源服务器)
3.执行:svnadmin dump D:\svn\test>D:\svn\test\test.dump(源服务器)
4.在E盘中建立一个同名的test的文件夹(目标服务器)
5.cd C:\Program Files\Subversion\bin(目标服务器)
6.svnadmin create E:\svn\test(目标服务器)
7.测试此test版本库是否可以用,如果可以用。再做下面的操作(目标服务器)
《要把在源服务器上导出的test.dump文件copy目标服务器上》
8.Svnadmin load E:\svn\test< c:\svn\test\test.dump(目标服务器。这个只是将源服务器上导出的版本库,导入到现在的服务器上。)
9.修改配置文件和修改权限,也可以将原来的权限文件copy到新的版本库中。(目标服务器)
第二种方法:
1.停止服务,我用的是apache
2.把D:\svn\test下面的所有的文件copy到192.168.1.12的E:\svn\test
3.修改apache中的文件路径,写入新的文件路径
4.打开服务,但是这种做法的条件是:SVN旧版本库的操作环境系统和新版本操作环境系统相同,而且SVN的版本相同。
5.在本地复制的版本库,右键---TortoiseSVN--- Relocate,在弹出的框框内,重新输入版本库的ip。
四、Windows上操作,VisualSVN Server迁移备份步骤
原服务器A,新的服务器B
首先在A上面的操作
1.在cmd窗口,输入cd命令,进入VisualSVN Server的安装目录中的bin文件夹
2.先找到项目仓库的存放位置,打开visualSVN Server,在visualSVN Server上面鼠标右键,选择属*,查看Storage,就可以看见具体路径。
3.输入 svnadmin dump D:\Repositories\tax> D:\1\svn.dump命令,
(svnadmin dump版本库文件夹目录>要导出的文件)
进行将版本库数据导出。
备注
我在操作的时候,这一步总是拒绝访问(没有遇到可以无视),查了百度,然后解决办法是,先新建一个没有后缀的文件(本例中,再D:\1下面新建一个tax文件,没有后缀)
然后输入命令 svnadmin dump D:\Repositories\tax> D:\1\tax
这一步到导出从1开始到最后的所有的版本信息,时间可能会较长。导出完成后,给tax文件加上后缀名.dump,将tax.dump文件复制到B服务器上面。
4.在B服务器上安装VisualSVN Server,安装步骤全部选择默认,直到安装完成。(小提示:安装时,最好改变默认端口,使用大一些的端口号)
5.在B服务器上,打开cmd窗口,输入命令
svnadmin load D:\svn\tax<D:\1\tax.dump将备份的数据导入版本库。
(svnadmin load要存放版本库的文件夹目录<备份文件)
导入时长和备份文件大小有关,文件越大,时间越长。
6.打开安装完成的VisualSVN Server。选择Repositories,右键,所有任务,import existing Repositories
在弹出框中选择第5步中Load命令的文件夹,确认后,左侧目录中就会显示和A服务器相同的目录结构,迁移(备份)成功。
7.服务端的操作到上一步结束。客户端的更改在另一篇文章中有写,myeclipse重新定位项目svn。
五、windows下svn迁移到linux
将windows上svn迁移到linux上
实现svn方式和方式访问
进入conf目录
authz:负责test3库的账号权限管理,控制账号是否读写权限
passwd:负责test3库的账号和密码管理,注意密码是明文的
svnserve.conf:svn服务器配置文件
示例:
启动:
端口:3690注意打开防火墙
访问:
svn://192.168.1.206:3690/test3
用mod_d*_svn模块实现Apache服务进行访问svn仓库,mod_d*_svn是Apache和svn之间的接口
SVNParentPath/svn/svndir
指如果有多个版本库建议使用SVNParentPath不使用SVNPath,/svn/svndir版本库位置
AuthUserFile/svn/svndir/passwd
指后面使用apache的htpasswd创建的用户名密码
AuthzSVNAessFile/svn/svndir/authz
指权限文件
创建用户并设置密码
此时可以通过
在浏览器中输入用户名密码访问
将windows下Repositories目录下的数据打包迁移到linux下的Repositories即可访问,但是用户名和密码不可以迁移,需要重建
1注意权限为问题,如果/svn/svndir属主不是apache,会一直访问拒绝访问
2 svn协助与协议
svn协议,用于客户端使用svn://方式访问版本库,而mod_authz_svn模块让客户端可通过Apache访问版本库,它们分别使用不同的服务:svnserve、d进行访问。由于用户、组权限不同,权限管理方式也不相同,因此,不建议同时启动两种访问方式。
而易用*,管理方便的角度来分析,Apache以,mod_authz_svn模块的方式访问版本库会更多人选择。(mod_authz_svn方式,使用80端口访问,并且提供s等加密传输,用于用户信息验证的密码保存方式不是明文的)