博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
svn服务器的配置
阅读量:6243 次
发布时间:2019-06-22

本文共 4589 字,大约阅读时间需要 15 分钟。

仓库:服务器上的文件                            工作副本:客户端下载到本地的文件                            工作副本的状态:                            1、当前未更改                            2、当前已更改                            3、过时未更改                            4、过时已更改

配置svn服务器

一、准备一台VM作为服务器
1、初始化
vh01.tedu.cn 192.168.4.1 selinux/firewalld/yum/
2、安装
[root@vh01 ~]# yum install -y subversion
3、创建svn数据库根目录
[root@vh01 ~]# mkdir /var/svn
4、创建项目目录
[root@vh01 ~]# svnadmin create /var/svn/project
5、修改配置文件
[root@vh01 ~]# vim /var/svn/project/conf/svnserve.conf
anon-access = none #匿名用户不允许访问
auth-access = write #认证后的用主户可以读写
password-db = passwd #存储svn用户的文件
authz-db = authz #授权文件
[root@vh01 ~]# vim /var/svn/project/conf/passwd
[users]
tom = tom123
jerry = jerry123
[root@vh01 ~]# vim /var/svn/project/conf/authz
[groups]
tom_and_jerry = tom,jerry
[/]
@tom_and_jerry = rw

  • = r
    6、起动服务
    [root@vh01 ~]# systemctl start svnserve
    [root@vh01 ~]# systemctl enable svnserve.service
    7、导入项目文件到svn服务器
    [root@vh01 ~]# cd /usr/lib/systemd/system
    [root@vh01 system]# svn import . file:///var/svn/project -m "Init Data"

客户端使用svn

1、客户端下载svn服务器上的项目文件
[root@vh01 system]# cd /opt/
[root@vh01 opt]# svn --username tom --password tom123 checkout svn://192.168.4.1/project code1
[root@vh01 opt]# cd code1/
[root@vh01 code1]# svn log
2、更新本地工作副本
[root@vh01 code1]# svn update
3、新建文件
[root@vh01 code1]# vim foo.sh
#!/bin/bash

if [ "$1" == "foo" ]; then

echo "bar"
elif [ "$1" == "bar" ]; then
echo "foo"
else
echo "$0 foo|bar"
fi
[root@vh01 code1]# svn add foo.sh #把foo.sh加入svn本地管理
[root@vh01 code1]# svn diff #显示服务器和本地工作副本的区别
将本地文件同步到服务器
[root@vh01 code1]# svn commit -m "Add foo.sh to project"
4、新建目录
[root@vh01 code1]# svn mkdir subdir
[root@vh01 code1]# svn status #查看状态
5、删除文件
[root@vh01 code1]# rm cups.service # 本地删除
[root@vh01 code1]# svn update # cups.service将重新下载
[root@vh01 code1]# svn delete cups.service # 在svn中删除文件
[root@vh01 code1]# svn status
[root@vh01 code1]# svn move foo.sh bar.sh # 在svn中改名
[root@vh01 code1]# svn commit -m "rename foo.sh, del cups.service, mkdir subdir"
6、练习
[root@vh01 code1]# sed -i '1a###test###' sshd.service
[root@vh01 code1]# sed -i '2a###mytest###' sshd.service
[root@vh01 code1]# svn diff sshd.service
[root@vh01 code1]# svn diff
[root@vh01 code1]# svn log svn://192.168.4.1/project
[root@vh01 code1]# svn commit -m "modify sshd.service"
7、将sshd.service回退到增加两行之前的状态
[root@vh01 code1]# svn merge -r4:2 sshd.service
[root@vh01 code1]# vim sshd.service 第六步新增的两行消失
8、将svn的第2版本的文件全部下载下来,叫做code2
[root@vh01 opt]# svn co -r2 svn://192.168.4.1/project code2

多人协作

1、tom和jerry分别下载了svn上面的项目
[root@vh02 ~]# cd /opt/
[root@vh02 tmp]# svn co --username tom --password tom123 svn://192.168.4.1/project tom
[root@room8pc16 ~]# svn ls --username tom --password tom123 svn://192.168.4.1/project
[root@vh03 ~]# cd /var/tmp/
[root@vh03 opt]# svn co --username jerry --password jerry123 svn://192.168.4.1/project jerry
2、不同用户修改不同文件
[root@vh02 tmp]# cd tom/
[root@vh02 tom]# sed -i '3a#####my test####' vmtoolsd.service
[root@vh02 tom]# svn commit -m "tom modify vmtoolsd.service"
[root@vh03 opt]# cd jerry/
[root@vh03 jerry]# sed -i '3a#####jerry test####' sshd.service
[root@vh03 jerry]# svn commit -m "jerry modify sshd.service"
[root@vh03 jerry]# svn update #tom修改的vmtoolsd.service同步到本地
[root@vh02 tom]# svn update

3、不同用户改变相同文件的不同行

[root@vh02 tom]# sed -i '1a####tom modify###' user.slice
[root@vh02 tom]# svn commit -m "tom modify slice.user"
[root@vh03 jerry]# sed -i '$a###jerry modify###' user.slice
[root@vh03 jerry]# svn commit -m "jerry modify user.slice" #失败,因为文件过时了(本地版本号低于服务器上的版本号)
[root@vh03 jerry]# svn update #更新到最新版本
[root@vh03 jerry]# svn commit -m "jerry modify user.slice" #重新提交
[root@vh03 jerry]# vim user.slice # tom和jerry的修改全部存在
4、不同用户改变相同文件的相同行
[root@vh02 tom]# sed -i '8c#####tom tom tom####' zram.service
[root@vh02 tom]# svn commit -m "tom modify zram.service"
[root@vh03 jerry]# sed -i '8c####jerry jerry####' zram.service
[root@vh03 jerry]# svn commit -m "jerry modify zram.service"
[root@vh03 jerry]# svn update #选择p
[root@vh03 jerry]# ls zram.service
[root@vh03 jerry]# mv zram.service.mine zram.service
[root@vh03 jerry]# ls zram.service
[root@vh03 jerry]# rm -f zram.service.r
[root@vh03 jerry]# ls zram.service
[root@vh03 jerry]# svn commit -m "jerry modify zram.service"
5、svn服务器端备份
[root@vh01 tom]# svnadmin dump /var/svn/project/ > /var/tmp/project.bak
6、还原
[root@vh01 tom]# rm -rf /var/svn/project/
[root@vh01 tom]# ls /var/svn/
[root@vh01 tom]# svnadmin create /var/svn/project/
[root@vh01 tom]# svnadmin load /var/svn/project/ < /var/tmp/project.bak

转载于:https://blog.51cto.com/13404755/2051846

你可能感兴趣的文章
【观点】离开了信息化,大数据就是为他人作嫁衣
查看>>
《HTML5+CSS3网页设计入门必读》——1.4 分裂:WHATWG TF
查看>>
《JavaScript核心概念及实践》——第2章 基本概念 2.1 数据类型
查看>>
Linux有问必答:如何修复"fatal error: jsoncpp/json/json.h: No such file..."
查看>>
阿里数据库内核月报:2016年11月
查看>>
简单了解Disruptor(一)
查看>>
编写更好 Bash 脚本的 8 个建议
查看>>
Mavens实战 1.5小结
查看>>
《 硬件创业:从产品创意到成熟企业的成功路线图》——第1章 硬件创业概述 1.1 早期的创客们...
查看>>
《Android游戏开发详解》——第3章,第3.5节继承
查看>>
《Docker生产环境实践指南》——2.6 编排
查看>>
Docker学习(一)
查看>>
云端架美购,精品零距离
查看>>
Java设计模式--享元模式
查看>>
码栈开发手册(五)---可视化方式开发(模块详解--浏览图)
查看>>
每天一个设计模式之装饰者模式
查看>>
基于自定义日志打印的UDAF调试
查看>>
JVM源码分析之Metaspace解密
查看>>
CSS 各种定位(position)方式的区别
查看>>
每周聚划算 超值软件汇总:云市场迎新年大礼包 专场五折封顶劲省2100元
查看>>