SVN 集中式版本管理工具
SVN : 集中式版本管理工具
checkout: 下载代码, 只需要做一次
update : 更新代码
commit :提交代码
三. SVN服务器搭建及配置(了解)
一. 端口号
http 80 一般是http, 因为SVN一般都是公司内部才能访问
https 443
二. 每次对服务器端做操作, 版本号都会提升
三. 安装
1. 参加一个仓库, 并配置用户
2. 应该(虚拟机注意是桥接模式, 网络是自动获取ip), 获取ip地址 (运行 --> cmd --> ipconfig --> 获取192.168.xx的地址)
3. 在Ma从浏览器中更换svn的地址, 进行访问
四. 常见UNIX命令行的使用(掌握)
pwd : 查看当前目录
cat : 在命令行中查看文件
五. SVN基本操作(掌握)
一. 模拟多人开发
一> .唐僧创建项目
1. cd 到指定文件夹下
2. 下载代码(指定一个目录跟服务器保持连接) : svn checkout http://192.168.23.112/svn/QQ --username=tangseng --password=tangseng
3. 再次cd 到SVN管理目录下, 千万不要忘记
4. 创建项目 : touch Car.h (拿一个文件模拟一个项目)
5. 查看状态: svn status status是将本地的代码和服务器做对比, 不一样的才会显示出来
6. 添加文件的管理权: svn add Car.h
7. 提交本地文件给服务器: svn commit -m "初始化了项目, 添加了Car.h文件" -m 一定要写, 以后查看版本时, 是通过注释来区分的. / ""可以不写, 是为了英文好区分注释
8. 更新代码 : svn update
---------------------------------
9. 删除文件: 不能直接删除, 否则up就回来 : svn delete 如来.h , 还需要提交
10. 恢复文件为最初的状态: (本地被修改, 但是没有提交服务器 / 文件被本地版本库删除了, 但是没有提交到服务器) : svn revert 如来.h
11. 查看帮助: svn help ,会调出所有的命令
12. 查看日志 : svn log , 查看之前的版本记录(备注一定要写, 而且要写的有意义)
13. 版本穿梭: svn update -r 10 回到第10个版本 , 可以查看之前的代码, 然后想回到最新的代码, 只要up一次, 即可
14. 告诉本地版本库解决了冲突 : svn resolved Car.h
二> 悟空加入开发(老手)
1. cd 到指定文件夹下
2. 下载代码(指定一个目录跟服务器保持连接) : svn checkout http://192.168.23.112/svn/QQ --username=tangseng --password=tangseng
3. 再次cd 到SVN管理目录下, 千万不要忘记
4. 正常开发, 该更新就更新, 该提交就提交
三> 八戒加入开发(新手)
1. cd 到指定文件夹下
2. 下载代码(指定一个目录跟服务器保持连接) : svn checkout http://192.168.23.112/svn/QQ --username=bajie --password=bajie
3. 再次cd 到SVN管理目录下, 千万不要忘记
4. 正常开发, 该更新就更新, 该提交就提交
团队开发, 就是, 写完提交, 别人更新
二. 常见命令的简写
checkout : svn co
status : svn st
commit : svn ci
update : svn up
三. 常见状态解释
? : 文件在SVN管理的目录下, 但是没有被SVN所管理. 看见? , 记得add
A : 文件在SVN管理的目录下, 并且, 已经被本地SVN版本库管理, 看见A, 记得commit
D : 文件在本地删除, 还需要提交
M : 文件在本地被修改过, 需要提交
G : 文件曾经发生过冲突, 然后被解决了
U : 文件被更新
C : 文件发生了冲突
四. 常见报错:
1. is not a working copy : 说明没有进入到SVN管理的目录. 就进行了SVN的命令. 应该进入到正确目录
2. xcrun: error: active developer path ("/Applications/Xcode 2.app/Contents/Developer") does not exist, use `xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command line developer tools (or see `man xcode-select`)
解决方案: 当多个Xcode版本同时存在, 可能工具就混乱了. 需要选择一下. 找Xcode --> 偏好设置 --> Locations --> command line 选择一下即可
3. is out of date : 文件过期 . 如果发生了冲突, 那么直接提交时, 会报此错误. 应该update.
五. 注意事项
1. 先更新, 再提交. (不会覆盖掉刚刚写的代码, 因为修改的文件版本高于服务器版本, 不会被覆盖.) 可以检测到冲突, 这只是一个操作规范.
2. 每一个文件都有单独的版本号, 24 - 25
3. 及时提交, 没做完一个小板块, 或者一个小功能就提交. 避免冲突
4. 如何避免冲突: 分模块, 沟通 .
六. 解决代码冲突
1. 代码冲突: 同一个文件, 同一行, 两个不同的人修改并提交. 就会发生冲突
2. 更新时, 如果发生冲突时会报以下错误
Conflict discovered in '/Users/apple/Desktop/SVN演练/八戒/Weixin/Car.h'.
//常用
(p) postpone : 延迟处理(svn工具不会帮你做解决冲突的事情, 自己手动解决) (版本会发生改变, 所以解决完冲突需要提交)
(mc) mine-conflict : 使用我的代码, 覆盖服务器的代码 . 还需要提交一次 (版本会发生改变, 所以需要提交)
(tc) theirs-conflict : 使用服务器的代码(他们的), 丢弃我的代码 (版本不会发生改变)
//不常用
(s) show all options : 展示所有的选项
(df) diff-full : 展示所有不同
(e) edit : 编辑, 在命令行中编辑
3. 发生冲突的文件会发生改变
<<<<<<< .mine ~ ======= 我的代码
======= ~ >>>>>>> .r24 服务器的代码
<<<<<<< .mine
@property (nonatomic, strong) NSString *banana3; // 悟空增加了香蕉3=======
@property (nonatomic, strong) NSString *xiaomi; // 八戒增加了小米>>>>>>> .r24
4. 解决冲突的方案:
1. (建议)选p, 延迟解决
2. 删除不认识的代码(<< == >> ), 然后自己合并代码
3. 告诉本地版本库, 自己已经解决了冲突: svn resolved Car.h
4. 需要提交代码 (其它人更新即可)
七. 使用第三方图形化工具
http://192.168.23.112/svn/Weibo/trunk
1. 小提示: 使用Cornerstone时, 拷贝svn网址, Cornerstone会自动将地址填入界面内.
2. 使用Cornerstone, 应该先连接远程仓库(左下角), 然后点击checkout下载代码.
注意: checkout选择目录时, 应将底部svn版本选择为1.7. 因为mac默认就是1.7版本. 如果版本过低, xcode会提示升级, 然后Cornerstone重启一次即可
3. 忽略文件:
1. .xcuserstate 不要提交给服务器. 此文件记录了用户当前展示的文件, 及目录展开结构
2. (非项目文件)data后缀的(还包括用户断点) 都可以忽略不提交
3. 通过工具, 先delete, 在commit, 再次编辑时就会出现, 最后选择ignore
八. 使用Xcode集成SVN
1. checkout : 三种方式
1. xcode欢迎界面, 选择第三个选项, 即可checkout
2. 选中xcode, 找偏好设置, 找账户, 左下角添加远程仓库
3. 选中xcode, 找顶部的source control菜单, 选择checkout (最简单)
2. 常用快捷键
1. update : com + opt + x
2. commit : com + opt + c
3. xcode解决代码冲突
只要更新, 一旦冲突, 就会有个界面提示选择. 应该选择下方的四个小按钮, update, 最后commmit就可以了. (没有提示resolved)
4. 如果将来写代码, 发现文件改的不像样子, 可以直接丢弃修改
5. SB / Xib 发生冲突的解决方案: 需要右键查看源码, 然后自己比对丢失的代码. 团队开发中, 尽量避免界面发生冲突 (如果不小心移动了界面, 那么可以丢弃修改)
九. SVN目录结构
trunk : 开发主目录
branch : 分支, 一般用于修复bug或者开发新功能.
tags : 备份重大版本(一般可以备份上架AppStore的版本)
转载于:https://www.cnblogs.com/yilizhijiaotianxiashao-yincaiersanshijianduo/p/5437124.html
SVN 集中式版本管理工具相关推荐
- 谈一谈git和SVN两大版本管理工具。
Git 和 SVN 的区别? 写在前面: git和SVN都是一个版本管理工具,没有孰优孰劣之分,在这里,只是简单的说一说git和svn的优缺点.选用哪一个看自己公司的实际情况而定. 1) 核心的区别在 ...
- Git学习笔记(集中式版本控制工具与分布式版本控制工具)
集中式版本控制工具 集中式版本控制工具是指所有的项目版本都存储在唯一的服务器中,而团队中使用者本地只保存有最新版本.因此,当服务器宕机或故障时,服务器中文件如果损坏或缺失,使用者本地只有最新版本,因此 ...
- 版本管理工具使用之svn
svn简介 SVN是Subversion的简称,是一个集中式开放源代码的版本控制工具,svn必须联网才能工作,而git是分布式的,所以git支持离线工作,这是git与svn最大的区别.Tortoise ...
- 软件测试——版本管理工具:SVN和Git
软件测试--版本管理工具:SVN和Git SVN SVN的安装和介绍 SVN的安装 操作 冲突 Git Git的安装和配置 git的命令行用法 git 代码冲突 持续集成和持续交付 定义 目的 持续集 ...
- Git——版本管理工具(一)
Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介绍 Git -- The stupid content tracker(傻瓜式的内容跟踪器) 1. Git 背 ...
- 《Git》版本管理工具的初识与入门
前言 我所在的公司一直是使用svn作为版本管理工具,因此我没有接触过git,但是不管如何git作为目前大火的版本管理工具,了解并掌握是很有必要的,因为你不能确定下一家公司使用的是svn还是git作为版 ...
- Git(分布式版本管理工具)
Git(分布式版本管理工具) 1. Git 概述 1.1 什么是版本控制? 1.2 版本控制工具都有哪些 1.2.1 集中式版本控制工具 1.2.2 分布式版本控制工具 1.3 Git 简史 1.4 ...
- Git 版本管理工具(一)
Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介绍 Git -- The stupid content tracker(傻瓜式的内容跟踪器) 1. Git 背 ...
- SVN集中代码版本管理仓库
SVN介绍 Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统.Svn版本管理工具管理着随时间改变的各种数据.这些数据放置 ...
最新文章
- Python3面向对象编程的三大特性 封装、继承、多态
- linux下批量修改文件名精彩解答案例分享
- 宏观 量子计算一句话
- 以数据为核心的SOC3.0时代到来
- POJ - 2135 Farm Tour(最小费用最大流)
- 开源API网关Kong基本介绍和安装验证
- numpy的生成网格矩阵 meshgrid()
- Selenium Webdriver ie 浏览器
- Python Matplotlib.plot Update image Questions
- C++ 空字符('\0')和空格符(' ')
- Github 标星 13K+!这可能是最好的 Java 博客系统
- Linux软件包安装之yum的使用
- 关于vue编译版本引入的问题
- android mvp快速创建,学习MVPArms历程之Android Studio快速创建ArmsComponent组件化项目
- 微信扫一扫二维码直接打开手机默认外部浏览器
- python窗口显示表格_python表格界面
- UI自动化常见的等待方式
- EDM数据营销之HTML模板相关问题
- duilib学习------网易云信图片中间加文字
- 高性能计算机传奇(vamei)
热门文章
- options请求_前端数据请求的终极方案
- java读取gradle属性,Spring Boot获取Gradle中包的属性
- python bs4模块_python爬虫之Beautifulsoup模块用法详解
- 智慧城轨信息技术架构及信息安全规范_在深圳,我们打造智慧地铁的“最强大脑”...
- python 单行读取文件_python – 在使用for循环读取文件时跳过一行
- java中system_《java中System类》 | 学步园
- 有趣c语言编程经典例子,C语言简单有趣例子总结ZWF.pdf
- 微型计算机的分类有,微型计算机的分类
- django 如何提升性能(高并发)
- (3)nginx的虚拟主机配置