大家好,又见面了,我是你们的朋友全栈君。
1.由于项目工作需要进行svn服务器的迁移,对此简要介绍svn服务器的迁移方案。 2.主要迁移方式:
3.【svnadmin dump】是官方推荐的备份方式。
4.【svnadmin hotcopy】只能进行全量拷贝,不能进行增量备份;
5.【svnsync】直接同步源机器代码库,实际上是制作2个镜像库,当一个坏了的时候,可以迅速切换到另一个。
6.实际上在Linux下将svn从一台源服务器迁移到另一台目标服务器的操作过程分2步:
1)安装SVN服务端:根据源服务器的svn版本,在目标服务器安装同样版本或者相近版本的SVN;
2)同步SVN仓库:同步源服务器的SVN代码仓库到目标服务器上。
由于本人目前处理的svn仓库容量也就几个G而已,所以本文就针对自己的需求以【svnadmin dump
】举例进行svn的迁移介绍。
1.下面就先具体地介绍安装配置svn服务端,待操作完这一步后续在待迁移目标服务器上安装配置svn服务端就比较方便顺手了。
1.yum方式安装或者源码编译安装svn服务端。这里以yum方式安装为例(假设当前在Linux下已经切换至root用户):
$yum install subversion #即可安装svn服务端
$svn help #查看svn帮助手册
$svn --version #查看svn当前版本
2.创建svn仓库目录:
$mkdir -p /home/www/svn/web/
$svnadmin create /home/www/svn/web/
3.经【上述第二步】后在/home/www/svn/web下会生成一个svn的仓库工作空间。使用以下查看目录树:
$tree /home/www/svn/web
4.显示的目录树类似以下结果:
[root@bogon web]# tree /home/www/svn/web
/home/www/svn/web
├── conf
│ ├── authz
│ ├── authz.bak
│ ├── passwd
│ ├── passwd.bak
│ ├── svnserve.conf
│ └── svnserve.conf.bak
├── db
│ ├── current
│ ├── format
│ ├── fsfs.conf
│ ├── fs-type
│ ├── min-unpacked-rev
│ ├── rep-cache.db
│ ├── revprops
│ │ └── 0
│ │ ├── 0
│ │ ├── 1
│ │ └── 2
│ ├── revs
│ │ └── 0
│ │ ├── 0
│ │ ├── 1
│ │ └── 2
│ ├── transactions
│ ├── txn-current
│ ├── txn-current-lock
│ ├── txn-protorevs
│ ├── uuid
│ └── write-lock
├── format
├── hooks
│ ├── post-commit.tmpl
│ ├── post-lock.tmpl
│ ├── post-revprop-change.tmpl
│ ├── post-unlock.tmpl
│ ├── pre-commit.tmpl
│ ├── pre-lock.tmpl
│ ├── pre-revprop-change.tmpl
│ ├── pre-unlock.tmpl
│ └── start-commit.tmpl
├── locks
│ ├── db.lock
│ └── db-logs.lock
└── README.txt
10 directories, 35 files
[root@bogon web]#
5./home/www/svn/web/conf下以.conf结尾的文件:svn仓库的配置。
conf
├── authz:权限控制文件
├── authz.bak
├── passwd:帐号密码文件
├── passwd.bak
├── svnserve.conf:SVN服务配置文件
└── svnserve.conf.bak
6.编辑authz权限控制:
$vim /home/www/svn/web/conf/authz
[/] :仓库下所有文件/文件夹
yunwei=rw :【yunwei】用户具有读写权限
test=r :【test】用户具有只读权限
*= :除上述俩用户外,其他用户没有任何权限
7.编辑passwd账号密码:
$vim /home/www/svn/web/conf/passwd
[users]
yunwei=yunwei :用户名=密码
8.编辑svnserve.coonf服务配置:
$vim /home/www/svn/web/conf/svnserve.conf
[general]
anon-access=none :匿名用户没有访问权限
auth-access=write :已经被授权的用户具有写权限操作的权利
password-db=passwd :密码信息的文件路径(路径相对于本svnserve.conf而言)
authz-db=authz :访问控制文件信息的文件路径(路径相对于本svnserve.conf而言)
realm=/home/www/svn/web/ :认证命名空间,svn会在认证提示里显示。
9.启动svn服务端:
$svnserve -d -r /home/www/svn/web #-d:守护进程;-r:后台运行
10.查看svn进程:
$ps -ef|grep svn
11.如果想要停掉SVN服务,可以下面这样子操作:
$killall svnserve
12.【Windows客户端TortoiseSVN】连接svn服务端,进行检出获取仓库数据:
1)对话框输入地址:【svn://ip地址:端口】
#ip地址:待检出的svn服务端ip地址
#端口:默认3690
#这样子一来就可以用来获取这个svn服务端的仓库数据。
2)输入【用户名,如:yunwei】,【密码,如:yunwei】。即可检出。
2.准备好源服务器和目标服务器。本文假设svn源服务器:10.80.80.238,svn目标服务器:10.80.80.234,svn目标服务器已经完成了svn服务端安装。
/home/svn/
】,待操作的目标服务器10.80.80.234仓库目录【/home/www/svn/web
】,俩服务器svn服务端口均使用默认端口3690。【确定】完即可。
2.1)本地仓库路径:【/home/linux/downloads/svntestprojects/pro1dir/
】。使用【$svn info
】查看连接信息,结果类似如下(可看到源服务器ip:10.80.80.238):
[root@localhost pro1dir]# svn info
Path: .
Working Copy Root Path: /home/linux/downloads/svntestprojects/pro1dir
URL: svn://10.80.80.238
Repository Root: svn://10.80.80.238
Repository UUID: d40b338c-41be-439f-aade-8b6a1aebb690
Revision: 2
Node Kind: directory
Schedule: normal
Last Changed Author: yunwei
Last Changed Rev: 2
Last Changed Date: 2019-01-07 15:11:39 +0800 (Mon, 07 Jan 2019)
2.2)变更: svn switch --relocate svn://10.80.80.238 svn://10.80.80.234 #过程中输入本地【root】密码->输入目标服务器svn被授权的用户名和密码->进行验证->验证成功->接着连接到目标服务端svn即可。
[root@localhost pro1dir]# svn info
Path: .
Working Copy Root Path: /home/linux/downloads/svntestprojects/pro1dir
URL: svn://10.80.80.234
Repository Root: svn://10.80.80.234
Repository UUID: d40b338c-41be-439f-aade-8b6a1aebb690
Revision: 2
Node Kind: directory
Schedule: normal
Last Changed Author: yunwei
Last Changed Rev: 2
Last Changed Date: 2019-01-07 15:11:39 +0800 (Mon, 07 Jan 2019)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/161758.html原文链接:https://javaforall.cn