各位老铁们好,相信很多人对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服务器迁移 TortoiseSVN的服务器如何转移到另一台电脑

svn协议,用于客户端使用svn://方式访问版本库,而mod_authz_svn模块让客户端可通过Apache访问版本库,它们分别使用不同的服务:svnserve、d进行访问。由于用户、组权限不同,权限管理方式也不相同,因此,不建议同时启动两种访问方式。

而易用*,管理方便的角度来分析,Apache以,mod_authz_svn模块的方式访问版本库会更多人选择。(mod_authz_svn方式,使用80端口访问,并且提供s等加密传输,用于用户信息验证的密码保存方式不是明文的)