Linux下SVN服务器迁移(详细版)
最近因公司测试环境需要做迁移,除了应用需要迁移外,项目中平时用到的软件都得迁,涉及到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服务器迁移(详细版)相关推荐
- Linux下svn服务器迁移
Linux下svn服务器迁移 1.介绍迁移方式: 1.由于项目工作需要进行svn服务器的迁移,对此简要介绍svn服务器的迁移方案. 2.主要迁移方式: svnadmin dump svnadmin h ...
- linux下svn服务器搭建及使用
文章目录 1. 安装svn客户端 2. 安装svn服务器 3. 在svn目录下创建版本库 4. 修改版本库配置文件 4.1 修改 authz 文件 4.2 设置密码 passwd 4.3 修改 svn ...
- Linux下SVN服务器同时支持Apache的http和https及svnserve独立服务器三种模式且使用相同的访问权限账号...
1.在服务器上安装配置SVN服务: 2.配置SVN服务同时支持Apache的http和svnserve独立服务器两种模式访问: 3.Apache的http和svnserve独立服务器两种模式使用相同的 ...
- Linux下SVN服务器的搭建
Linux下SVN服务器的搭建 宗旨:技术的学习是有限的,分享的精神是无限的. 1.下载工具(下载地址:) subversion-1.6.1.tar.gz subversion-deps-1.6.1. ...
- linux下svn服务器的安装配置和使用
2019独角兽企业重金招聘Python工程师标准>>> 安装环境: centos 一,安装必须的软件包. yum install subversion mod_dav_svn 二,基 ...
- 利用Linux搭建SVN服务器,详细过程
第一步:安装SVN环境依赖 yum -y install subversion #下载并安装svn服务svnserve --version #检查svn版本,确认环境是否安装成功 第二步:创建版本库目 ...
- Linux下SVN服务器搭建(CentOS+Subversion)
svn(subversion)是近年来崛起的版本管理工具,是CVS的接班人.目前,绝大多数开源软件都使用svn作为代码版本管理软件.svn服务器有2种运行方式:独立服务器和借助apache等web服务 ...
- linux svn 面板,Linux下SVN服务器搭建(CentOS+Subversion)
安装 (centos下yum即可方便的完成安装) # yum install subversion 测试安装是否成功: # svnserve --version 回车显示版本说明安装成功 建立版本库 ...
- linux下 svn服务器搭建及使用
1.安装svn 命令:sudo apt-get install subversion 2.创建目录和svn仓库 1) mkdir /home/zx/test_svn 2)svnadmin create ...
最新文章
- QS世界大学学科排名公布,清华22个学科进入世界50强
- .net面试问题汇总(转)
- Nuke编辑工具包新版 Cara VR 插件发布
- ListView加checkBox可以实现全选等功能
- FFT-Matlab初步实现
- CVTE2016校招试题摘选
- 静态代码块、非静态代码块、构造函数执行顺序
- 基于JAVA+SpringBoot+Mybatis+MYSQL的化妆品售卖系统
- rabbitmq 常用的一些命令
- bzoj 1003: [ZJOI2006]物流运输
- 经验之谈:程序员应该如何学好大数据技术
- 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第1节 基础加强_1_今日内容(1)...
- 浏览器静态资源的缓存机制(http强缓存 协商缓存)
- YDOOK: USB 转 TTL 串口模块接线图
- centos7 oracle11gR2安装
- python wilcoxon test_自动化框架之 python+selenium+pytest · TesterHome
- uniapp中后端返回的数字字符串如何在页面快速计算
- 闭关六个月整理出来的微机原理知识点(特别适用河北专接本)
- 分享WIN7输入法图标不显示的几种解决方法
- Word97文字处理软件培训教案
热门文章
- python图片镜像翻转_python中镜像实现方法
- 20189230杨 2018-2019-2 《密码与安全新技术专题》第3周作业
- 数据表很多,sqlmap快速找出存放用户名和密码的表,一把梭
- 【信奥赛一本通】1183:病人排队(详细代码)
- 微信小程序项目启动错误“Error: ENOENT: no such file or directory, open”
- 非组蛋白带什么电荷_非组蛋白是构成真核生物染色体的基本结构蛋白, 富含带正电荷的精氨酸( Arg ) 和赖氨酸( Lys ) 等碱 性氨基酸。_学小易找答案...
- php实训参考文献,SPSS实训心得体会
- 囚徒困境(进化优化算法)
- 怎么删除html下面多余的空白页,word怎么删除空白页面(word删掉多余空白页方法)...
- 基于tf-openpose的动作识别实现街头霸王5对战项目