从零开始SVN(1)--服务端与命令行操作
文章目录
- 概述
- Linux下的安装和使用
- 服务器端安装
- 命令行操作
- 检出
- 添加
- 提交
- 更新
- 冲突与解决
- 冲突的产生
- 冲突的解决
相关: 从零开始SVN(2)–Eclipse、Subclipse、分支开发
概述
在团队开发的过程中,通常有如下需求:协同修改、数据备份、版本管理、权限控制、历史记录等,因此有了版本控制的思想。
版本控制
指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。
版本控制工具
对版本控制思想的具体实现,版本控制工具可以分为集中式、分布式两种。
- 集中式:CVS、SVN、VSS···
- 分布式:GIT
由于将入职的公司使用 SVN 较多,所以在这具体地学习一下。
SVN
SVN 全称 Subversion,采用 C/S 结构设计,常用的操作如下:
- Checkour:检出,从服务器端的版本库中下载需要的内容到本地。在一次开发中,只需做一次。
- Update:更新,把服务器端相对于本地的修改下载到本地。
- Commit:提交,将本地的修改上传到服务器。
Linux下的安装和使用
服务器端安装
为了学习演示客户端的操作,先在云服务器上搭建自己的 SVN 版本库。
- 首先安装服务器端程序,查看版本信息
yum install -y subversion
svn --version
- 创建并配置版本库
mkdir /usr/local/svn/repository -p // 创建版本库目录
cd /usr/local/svn/repository
mkdir mypro //在版本库目录下创建具体项目目录
svnadmin create mypro/ //真正创建 SVN 版本库
创建完项目的版本库后,版本库中有以下默认内容:
- 配置并启动 SVN 服务
vim /etc/sysconfig/svnserve //修改 SVN 默认根目录
systemctl enable svnserve.service //设置开机启动
systemctl start svnserve.service //启动 SVN 服务
ps aux | grep svn //检查是否启动成功
注: SVN 默认使用 3690 端口,云服务器需要开放相应端口。
命令行操作
命令行的操作,可以创建两个工作区来模拟两个开发人员:
检出
开发人员检出项目
svn checkout svn://ip.ip.ip.ip/mypro ./ //检出版本库中所有内容
harry、sally 分别执行以上命令,目录下会自动创建 .svn 目录:
修改版本库的url:
svn sw --relocate svn://old_ip/目录 svn://new_ip/目录
添加
SVN 要求提交一个新建的文件前需要先把它添加到版本控制体系(区别于版本库)中:
svn add xxx
在 harry 下创建 hello.txt 文件,并添加到版本控制体系中:
提交
提交之前,需要设置版本库的权限,在 …/mypro/conf 下的 svnserve.conf 文件中进行配置,下图开启匿名的写权限:
之后可以提交 harry 创建的文件,由下图可知上传成功,且当前版本为1:
svn commit xxx -m “描述”
在服务端就可以看到我们提交的文件:
svn list svn://ip.ip.ip.ip/mypro
更新
前面 harry 用户提交了文件,对服务端的版本库产生了修改,而 sally 用户检出的版本还是上一个版本,这时 sally 用户就可以进行更新的操作:
svn update [文件名] // []表示可选
冲突与解决
冲突的产生
过时文件:开发人员本地的版本相对服务器端版本来说是旧的版本,在旧的版本上进行了修改。
产生冲突的条件:
- 本地当前编辑的文件已经过时了。
- 从服务器端更新下来的修改和本地的修改在“同文件同位置”不一致。
制造冲突:
在命令行我们可以制造冲突。
- harry:
- sally:
这时我们先提交 sally 修改后的 hello.txt:
此时,harry 本地的版本是落后于服务端的,harry 在提交时就会提醒本地文件已经过时:
然后我们执行更新操作,这时候就产生了冲突,我们先选择 p 推迟:
冲突表现
文件内:
目录内(r后面的数字表示版本号):
冲突的解决
手动解决
- 删除冲突发生时产生的三个文件
- 删除冲突文件内多余的符号
- 将文件编辑到满意的状态后提交
半自动解决
设置 SVN_EDITOR 环境变量
which vim //获取 vim 的路径
vim /etc/profile //编辑 profile 文件
//在文件下面加入: export SVN_EDITOR= vim 的路径
source /etc/profile 系统重新加载 profile
在 svn 给我们的选择中,选择 e 进行编辑
编辑满意后,选择 r 选项标记此冲突已解决(解决后得再次提交)
从零开始SVN(1)--服务端与命令行操作相关推荐
- linux下svn(subversion)服务端添加工程及配置权限
linux下svn(subversion)服务端添加工程及配置权限 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/9010507.html 此篇我只是将所做过的 ...
- 命令行操作svn和git和git
前几天在写代码的时候电脑突然坏掉,老大交代的任务没完成,非常痛恨自己用svn或者git保存代码,相信很多程序员遇到过,硬盘坏掉,存在硬盘中的代码丢失,无法找回的问题,svn和git可谓程序员界的福音, ...
- SVN server 服务端修改端口号
SVN server 服务端修改端口号 在实际使用中可能当安装svn server 服务后,发现与后续其他程序端口冲突, 1.打卡svn server 管理界面->操作->properti ...
- github命令行操作
首先做准备工作,安装github客户端Git Shell和GitHub,GitHub用于界面化操作,本次主要说一下如果用命令行操作, 1.打开Git Shell,进入本地项目库,cd F:gitdem ...
- ROS软路由中CLI命令行操作手册
CLI(command Line interface)命令行操作 命令提示显示路由器的身份名称和当前的操作路径,如下: [admin@MikroTik] > [admin@MikroTik] i ...
- Hive 本地模式,远程模式模式的搭建、命令行操作、Hive JDBC操作
追风赶月莫停留,平芜尽处是春山. 文章目录 追风赶月莫停留,平芜尽处是春山. 环境 下载安装包,解压到合适位置: Hive 本地模式的搭建 一.配置相关的文件: 二.安装并配置MySQL 三.配置Hi ...
- ed2k linux命令行,Linux_Linux管理应用技巧 amulecmd的使用方法,amulecmd是aMule的命令行操作与管 - phpStudy...
Linux管理应用技巧 amulecmd的使用方法 amulecmd是aMule的命令行操作与管理程序. 首先,为了拥有amuled 与 amulecmd 两个可执行文件,要在编译的时候指定: # . ...
- zookeeper常用命令行操作
zookeeper常用命令行操作 输入help显示命令提示 [zk: localhost:2181(CONNECTED) 0] help ZooKeeper -server host:port cmd ...
- DOS命令行操作MySQL常用命令
平时用可视化界面用惯了,如果紧急排查问题,没有安装可视化工具的话,只能通过命令来看了. 以备不时之需,我们要熟悉一下命令行操作MySQL. 打开DOS命令窗口:WIN + R 输入cmd,回车 然后输 ...
最新文章
- 有界阻塞队列ArrayBlockingQueue和无界阻塞队列LinkedBlockingQueue
- Datawhale组队学习:数据结构与算法课程任务
- Python使用matplotlib绘图并去除颜色样条colorbar实战:remove colorbar from figure in matplotlib
- 3、Spring Cloud - Eureka(高可用Eureka Server集群)
- (十)Centos之文件搜索命令find
- python wasm_Python-pywasm-美味尝鲜
- Nacos 发布 1.0.0 GA 版本,可大规模投入到生产环境
- UBUNTU下面安装ICE失败记录过程
- 分析频域滤波和空域滤波的各自特点_同态滤波原理及其matlab实现
- Android小项目合集(经典教程)包含十五个Android开发应用实例
- 迷你博客突然走红 至今尚无商业模式
- java从本地下载pdf文件_java下载PDF文件
- Ruby 开发环境搭建
- PS第三课--套索和魔棒工具
- 机器人卫士密码箱密码忘了怎么办_幼儿园来了“晨检”机器人卫士
- 服务器虚拟主机,非根目录jsp文件的引包报错
- 深度学习与人脸识别系列(4)__利用caffe训练深度学习模型
- 每天一大杯可乐,会不会骨质酥松哇?
- Java核心技术 卷Ⅰ 基础知识(原书第10版)
- 卡通农场服务器无响应是怎么回事,卡通农场新买的平板打不开的解决方法
热门文章
- 最早的忆阻器与神经形态芯片
- mqtt session保持 订阅消息_iOS MQTT 3 - 发送订阅消息以及发送过程
- VIVO手机调试Flutter应用卡在启动页面 黑屏 白屏问题
- IBM研发仿人脑计算机原型 用电子血液同时供能与冷却
- docker 使用阿里镜像加速器
- 巴菲特致股东的一封信:2009年
- subtance painter——2——基础贴图制作
- 【WORD】word无法启动转换器mswrd632.wpc导致WORD打不开
- 期市财经:济南青外盘期货开户_10月8日外盘期货原油策略建议
- Ubuntu 18.04 编译 cloudcompare