环境介绍:
root@pts/0 $ cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core) root@pts/0 $ uname -rm3.10.0-229.4.2.el7.x86_64 x86_64
SVN 安装
Centos默认的YUM base包里面就包含了subversion安装包 故用以下命令即可
安装
yum install subversion –y
验证版本
svnserver –version
新建版本库
## 创建SVN 版本库根目录mkdir –p /opt/svn/repository## 进入目录,创建实际的版本库cd /opt/svn/repository svnadmin create repos1 svnadmin create repos2
初始化版本库
mkdir svninit mkdir svninit/web svninit/test svn import svninit/ file:///opt/svn/repository/repos1
配置
## 列举版本库下面的文件ls –l /opt/svn/repository/repos1 drwxr-xr-x 2 root root 4096 Jul 6 14:02 conf drwxr-sr-x 7 root root 4096 Jul 12 15:15 db -r--r--r-- 1 root root 2 Feb 16 15:31 format drwxr-xr-x 2 root root 4096 Feb 16 15:31 hooks drwxr-xr-x 2 root root 4096 Feb 16 15:31 locks -rw-r--r-- 1 root root 229 Feb 16 15:31 README.txt## 详细配置关于SVN 的详细配置可以参考《Centos7 下SVN详细配置》
启动
-r 添加 repository的根目录 -d 让SVN以deamon的形式运行 svnserve -r /opt/svn/repository/ –d
访问
# 访问地址svn://192.168.68.9/repos1svn://192.168.68.9/repos2## Linux 测试[root@duqian svntest]# svn co svn://192.168.100.6/repos1Checked out revision 0.[root@duqian svntest]# svn co svn://192.168.100.6/repos2Checked out revision 0.
SVN 备份迁移
SVN备份有三种方式
svnadmin dump
官方推荐的备份方式。可以结合bzip2 备份的同时压缩
有点:可全量也可增量备份,方式比较灵活。并提供对应的恢复机制 缺点:当版本库很大的时候,这种备份方式超级耗时,恢复也很耗时,不利于紧急的灾难恢复 svnadmin dump /opt/svn/repository/repos1 |bzip2 > /tmp/repos1.bz2
svnadmin hotcopy
优点:备份和恢复的过程相对较快 缺点:只能全量copy,此外比较耗费硬盘 svnadmin hotcopy –clean-logs /opt/svn/repository/repos1 /tmp/repos1_20160712 如果添加 –clean-logs 选项,则 svnadmin 会先执行热拷贝,然后删除不用的Berkeley DB日志文件
Svnsync
SVN 1.4 版本以上支持,实际是制作两个image库 优点:制作的两个image库可以作为双机实时备份 缺点:作为两个image库使用的时候,在恢复和操作上有很大的限制 所以一般不用此方式
停服务纯文件copy
这种方式建议在不使用SVN 的时候停掉服务,然后采用Linux下纯文件copy的方式,可以用scp或者 rsync 等命令来实现 scp /opt/svn/repository 192.168.100.7: /opt/svn/repository
建议
版本库很小的时候采用方式一 'svnadmin dump', 如果库相对较大又想得到很好地恢复时间和操作,可以采用方式二 ‘svnadmin hotcopy’
SVN恢复
svnadmin load
svnadmin load /opt/svnnew/repository/repos1 < /tm/repos1_20160712
svnadmin hotcopy
svnadmin hotcopy /tmp/repos1_20160712 /opt/svnnew/repository/repos1
SVN错误
E205007
[root@duqian repository]# svn import /tmp/svn-init/ file:///opt/svn/repository/repos1/ svn: E205007: Could not use external editor to fetch log message; consider setting the $SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options svn: E205007: None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and no 'editor-cmd' run-time configuration option was found
解决方法:
1, svn import/commit 的时候添加 –m 参数2, 设置 SVN_EDITOR变量 export SVN_EDITOR=vim 这种方式会弹出一个页面填写comment
E150002
[root@duqian repository]# svn import /tmp/svn-init.log file:///opt/svn/repository/repos1/ -m 'svn 初始化'svn: E150002: Path 'file:///opt/svn/repository/repos1' already exists
解决方法:
经过自己验证和参照,import不能导入单个文件 [root@duqian repository]# svn help importimport: Commit an unversioned file or tree into the repository. usage: import [PATH] URL Recursively commit a copy of PATH to URL. If PATH is omitted '.' is assumed. Parent directories are created as necessary in the repository. If PATH is a directory, the contents of the directory are added directly under URL. Unversionable items such as device files and pipes are ignored if --force is specified.
作者:全栈运维
链接:https://www.jianshu.com/p/34b1eba3bd8b
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦