最近因公司测试环境需要做迁移,除了应用需要迁移外,项目中平时用到的软件都得迁,涉及到nginx,redis , active MQ ,jenkins 以及SVN。SVN的迁移涉及到了代码的同步,在网上搜了很多SVN迁移相关的文章,发现杂而乱,最终还是完成了测试环境的SVN迁移。迁移完成后,发现整个过程是非常清晰以及有序的,遂记之。

步骤:将SVN从一台服务器(源服务器)迁移到另一台服务器(新服务器)上,操作分为两步:

1 )   按照源服务器的版本,在新服务器安装同样的版本的SVN;

2 )   同步源服务器的SVN库到新服务器上;

SVN安装:(以1.6.11版本为例)

1 )  下载   subversion-1.6.11.tar.bz2   subversion-deps-1.6.11.tar.bz2  这两个文件

wget  http://subversion.tigris.org/downloads/subversion-1.6.11.tar.bz2

wget  http://subversion.tigris.org/downloads/subversion-deps-1.6.11.tar.bz2

2) 解压

tar  jxvf  subversion-1.6.11.tar.bz2

tar  jxvf  subversion-deps-1.6.11.tar.bz2

解压完成后,会出现一个名为 subversion-1.6.11的文件夹  如下图:

3 ) 安装:( 分为三个操作   配置安装路径    编译    安装  )

进入到  subversion-1.6.11 这个目录下,( PS  :   三个操作都在此目录下操作  )

配置安装路径:        ./configure --prefix=/home/yst/svn    ( /home/yst/svn  这个是指定安装到哪个目录 )

编译: make

安装: make install

( PS :   编译 和 安装 也可以 合并成一句命令    make && make install )

至此 新服务SVN服务的 安装已经完成了。这里再推荐下另外的方式( 需要 root权限 ):

1) 万能的  yum

yum install subversion

2 ) apt-get

apt-get install subversion

接下来,检查SVN 是否安装成功。

svn --version   (  出现version,表示安装成功  )

如果 svn 命令找不到的话:( 就用 svn命令的全路径去执行    svn命令在  安装目录(home/yst/svn)的 bin目录下      )

            

SVN的迁移: (  建议迁移的时候,将所有源库SVN所有账号的权限改成只读,或者停掉SVN服务器  )

SVN的迁移有两种方式:

1) dump出源机器SVN的代码库,然后load到新服务器上去。

2)  使用 svnsync 直接同步源机器代码库。

比较这两种迁移的方式,我比较推荐第二种——使用svnsync进行迁移。第一种使用dump出源机器代码库,

dump完,看了一下dump文件,几十个G,太大了。两种操作的方式具体操作如下:

一、采用dump迁移SVN代码库:

1) dump 出源机器的SVN代码库:  (  依照SVN数据量的大小,时间可能会很长 )

svnadmin dump repos/ > 2414.dump  (dum出文件)

repos/ 源机器上SVN代码库目录

2)使用 scp(secure copy)命令,将dump出来的文件传到 新机器上。

scp -r  /home/svn-admin/repos  yst@10.213.34.88:/home/yst/svn/svn-admin

scp -r   源机器SVN仓库目录         新机器用户名@新机器IP地址:传到新机器的指定目录

然后输入新机器 linux用户名的密码,就在传dump文件了。

3 )  在 新机器上建立 仓库

svnadmin  create  /home/yst/svn/svn-admin/repos4

4)  将 dump 文件 load 进 新服务的仓库中:

/home/yst/svn/bin/svnadmin load /home/yst/svn/svn-admin/repos4 < 2414.dump

将 2414.dump   < ( 写入 ) 到 新服务器上刚刚新建的仓库中去。

5) 启动新机器的SVN服务:

svnserve -d -r repos4

6)查看  SVN服务是否 启动:

ps -ef |  grep svn  (  如下图 )

PS :  SVN服务的默认启动端口是 3690, 可以通过  svnserve --listen-port 8899 -d -r  repos4(SVN仓库路径)指定端口启动。

二、使用 svnsync 迁移SVN代码库 ( 推荐使用这种方式 )

1)在新服务器上创建 代码仓库

svnadmin create /home/yst/svn/svn-admin/repos5

2)修改新建仓库中hooks 下的 名为 pre-revprop-change 的文件:

cp pre-revprop-change.tmpl pre-revprop-change

chmod 777  pre-revprop-change  (  给pre-revprop-change文件 赋执行权限 )

修改  pre-revprop-change 脚本最后一行 为  exit 0

3)svnsync  init  file:///home/yst/svn/svn-admin/repos5 svn://xx.xx.xx.xx ( 初始化 )

svnsync  init   file:// 新机器仓库目录路径   源服务器的IP(可以通过 http 协议,还可以通过svn协议)               

(PS : 这块需要输入密码验证,新服务器的密码    源服务器SVN的账号密码,此账号应该有仓库所有代码的读取权限)

4) svnsync sync file:///home/yst/svn/svn-admin/repos5  ( 同步 )

5)  等待同步完成,启动SVN服务器即可。至此,SVN服务就已经迁移完了。

迁移完成之后,发现提交代码有问题,报错如下:

解决方式是: 将原仓库的 uuid 复制过来,覆盖新服务器上的UUID

参考链接:

SVN权限控制

https://blog.csdn.net/cuiyaoqiang/article/details/51784391

SVN sync同步:

http://blog.chinaunix.net/uid-25266990-id-2953695.html

SVN 实时同步:

http://blog.51cto.com/php2012web/1852311

https://blog.csdn.net/xyw591238/article/details/51914908

Linux下SVN服务器迁移(详细版)相关推荐

  1. Linux下svn服务器迁移

    Linux下svn服务器迁移 1.介绍迁移方式: 1.由于项目工作需要进行svn服务器的迁移,对此简要介绍svn服务器的迁移方案. 2.主要迁移方式: svnadmin dump svnadmin h ...

  2. linux下svn服务器搭建及使用

    文章目录 1. 安装svn客户端 2. 安装svn服务器 3. 在svn目录下创建版本库 4. 修改版本库配置文件 4.1 修改 authz 文件 4.2 设置密码 passwd 4.3 修改 svn ...

  3. Linux下SVN服务器同时支持Apache的http和https及svnserve独立服务器三种模式且使用相同的访问权限账号...

    1.在服务器上安装配置SVN服务: 2.配置SVN服务同时支持Apache的http和svnserve独立服务器两种模式访问: 3.Apache的http和svnserve独立服务器两种模式使用相同的 ...

  4. Linux下SVN服务器的搭建

    Linux下SVN服务器的搭建 宗旨:技术的学习是有限的,分享的精神是无限的. 1.下载工具(下载地址:) subversion-1.6.1.tar.gz subversion-deps-1.6.1. ...

  5. linux下svn服务器的安装配置和使用

    2019独角兽企业重金招聘Python工程师标准>>> 安装环境: centos 一,安装必须的软件包. yum install subversion mod_dav_svn 二,基 ...

  6. 利用Linux搭建SVN服务器,详细过程

    第一步:安装SVN环境依赖 yum -y install subversion #下载并安装svn服务svnserve --version #检查svn版本,确认环境是否安装成功 第二步:创建版本库目 ...

  7. Linux下SVN服务器搭建(CentOS+Subversion)

    svn(subversion)是近年来崛起的版本管理工具,是CVS的接班人.目前,绝大多数开源软件都使用svn作为代码版本管理软件.svn服务器有2种运行方式:独立服务器和借助apache等web服务 ...

  8. linux svn 面板,Linux下SVN服务器搭建(CentOS+Subversion)

    安装 (centos下yum即可方便的完成安装) # yum install subversion 测试安装是否成功: # svnserve --version 回车显示版本说明安装成功 建立版本库 ...

  9. linux下 svn服务器搭建及使用

    1.安装svn 命令:sudo apt-get install subversion 2.创建目录和svn仓库 1) mkdir /home/zx/test_svn 2)svnadmin create ...

最新文章

  1. QS世界大学学科排名公布,清华22个学科进入世界50强
  2. .net面试问题汇总(转)
  3. Nuke编辑工具包新版 Cara VR 插件发布
  4. ListView加checkBox可以实现全选等功能
  5. FFT-Matlab初步实现
  6. CVTE2016校招试题摘选
  7. 静态代码块、非静态代码块、构造函数执行顺序
  8. 基于JAVA+SpringBoot+Mybatis+MYSQL的化妆品售卖系统
  9. rabbitmq 常用的一些命令
  10. bzoj 1003: [ZJOI2006]物流运输
  11. 经验之谈:程序员应该如何学好大数据技术
  12. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第1节 基础加强_1_今日内容(1)...
  13. 浏览器静态资源的缓存机制(http强缓存 协商缓存)
  14. YDOOK: USB 转 TTL 串口模块接线图
  15. centos7 oracle11gR2安装
  16. python wilcoxon test_自动化框架之 python+selenium+pytest · TesterHome
  17. uniapp中后端返回的数字字符串如何在页面快速计算
  18. 闭关六个月整理出来的微机原理知识点(特别适用河北专接本)
  19. 分享WIN7输入法图标不显示的几种解决方法
  20. Word97文字处理软件培训教案

热门文章

  1. python图片镜像翻转_python中镜像实现方法
  2. 20189230杨 2018-2019-2 《密码与安全新技术专题》第3周作业
  3. 数据表很多,sqlmap快速找出存放用户名和密码的表,一把梭
  4. 【信奥赛一本通】1183:病人排队(详细代码)
  5. 微信小程序项目启动错误“Error: ENOENT: no such file or directory, open”
  6. 非组蛋白带什么电荷_非组蛋白是构成真核生物染色体的基本结构蛋白, 富含带正电荷的精氨酸( Arg ) 和赖氨酸( Lys ) 等碱 性氨基酸。_学小易找答案...
  7. php实训参考文献,SPSS实训心得体会
  8. 囚徒困境(进化优化算法)
  9. 怎么删除html下面多余的空白页,word怎么删除空白页面(word删掉多余空白页方法)...
  10. 基于tf-openpose的动作识别实现街头霸王5对战项目