博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SVN用法
阅读量:6206 次
发布时间:2019-06-21

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

  • 核心概念
  • 生命周期
  • 具体用法
  • 分支
  • 版本回退

核心概念

       SVN是一个开源的版本控制系统,也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。

  • repository(源代码库):源代码统一存放的地方
  • Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份
  • Commit(提交):当你已经修改了代码,你就需要Commit到repository
  • Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更

日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了) 。

如果两个程序员同时修改了同一个文件呢, SVN可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行,SVN会提示文件Confict, 冲突,需要手动确认。

生命周期

  1. 创建版本库
  2. 检出(checkout)
  3. 更新(update)
  4. 执行变更
  5. 复查变化
  6. 修复错误,revert操作重置对工作副本的修改
  7. 解决冲突
  8. 提交更改

手动创建版本库

首先,在服务端进行SVN版本库的相关配置

手动新建版本库目录

mkdir /opt/svn复制代码

利用svn命令创建版本库

svnadmin create /opt/svn/runoob复制代码

使用命令svnserve启动服务

svnserve -d -r 目录 --listen-port 端口号复制代码

1、打开visualSVN,选择server manager,(可视化工具)

2、一个服务器,多个客户端。

3、repositories(版本库),点击右键新建版本库--->regular FSFS repository-->下一步--》给版本库起名字--》下一步--》设置权限--》customize permissions--》添加成员--》所有成员可以读写--》选人--》记录版本库路径--》单击仓库名赋值版本库地址--》客户端根据地址拉取数据--》创建用户

4、获取服务器资源--》进入某个文件夹下,点击右键-》SVN检出--》输入版本库地址--》检出深度--》全递归--》最新版本,也可以选择某个过去版本,从显示日志里查取

5、在目录下添加文件,做出修改,然后右击文件--》SVN提交

6、更新命令,多人操作时,需要在提交之前时,更新文件

7、版本回溯:右击具体文件,找到与前一版本比较,就会出现两个版本的不同点,右键选择更新至版本,选择具体版本

8、冲突问题

不同的人对同一文件的不同修改会导致冲突,SVN会把两种修改放在一个地方,分别用箭头表示版本,手动解决冲突,再提交

9、文件被锁定后,不可再更新提交,可以解除锁定

10、可以使用编辑器自带工具进行操作,不需要客户端了,需要服务器,hbuiilder里工具--》安装--》插件安装--》SVN插件,空白地方--》右键--》导入--》SVN--》从SVN检出项目--》选择版本库地址--》创建新的资源库地址--》设置新建的文件夹,文件修改后,右键--》选择版本管理,提交

转载于:https://juejin.im/post/5b76b00751882532fc7a65d1

你可能感兴趣的文章
草稿--Windows消息机制
查看>>
python中的类的成员变量以及property函数
查看>>
matlab保存数据
查看>>
Python+Appium寻找蓝牙/wifi匹配
查看>>
刘汝佳 例题10-3 选择与除法
查看>>
线性表 - 数据结构和算法06
查看>>
2017.1.20活动
查看>>
C/C++实现删除字符串的首尾空格
查看>>
es6重点笔记:数值,函数和数组
查看>>
「CH2101」可达性统计 解题报告
查看>>
javascript权威指南——笔记(第十章:正则)
查看>>
清理(委托类型实例)事件处理(实例)的函数及Lambda表达式
查看>>
C++的常量折叠(一)
查看>>
跟随我在oracle学习php(21)
查看>>
Deep learning:一(基础知识_1)
查看>>
1.4版本上线(第八次会议)
查看>>
maven POM.xml内的标签大全详解
查看>>
js中如何判断一个DOM对象是否存在?
查看>>
telnet命令发送邮件
查看>>
Linux学习笔记15—RPM包的安装OR源码包的安装
查看>>