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 集中式版本管理工具相关推荐

  1. 谈一谈git和SVN两大版本管理工具。

    Git 和 SVN 的区别? 写在前面: git和SVN都是一个版本管理工具,没有孰优孰劣之分,在这里,只是简单的说一说git和svn的优缺点.选用哪一个看自己公司的实际情况而定. 1) 核心的区别在 ...

  2. Git学习笔记(集中式版本控制工具与分布式版本控制工具)

    集中式版本控制工具 集中式版本控制工具是指所有的项目版本都存储在唯一的服务器中,而团队中使用者本地只保存有最新版本.因此,当服务器宕机或故障时,服务器中文件如果损坏或缺失,使用者本地只有最新版本,因此 ...

  3. 版本管理工具使用之svn

    svn简介 SVN是Subversion的简称,是一个集中式开放源代码的版本控制工具,svn必须联网才能工作,而git是分布式的,所以git支持离线工作,这是git与svn最大的区别.Tortoise ...

  4. 软件测试——版本管理工具:SVN和Git

    软件测试--版本管理工具:SVN和Git SVN SVN的安装和介绍 SVN的安装 操作 冲突 Git Git的安装和配置 git的命令行用法 git 代码冲突 持续集成和持续交付 定义 目的 持续集 ...

  5. Git——版本管理工具(一)

    Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介绍 Git  -- The stupid content tracker(傻瓜式的内容跟踪器) 1. Git 背 ...

  6. 《Git》版本管理工具的初识与入门

    前言 我所在的公司一直是使用svn作为版本管理工具,因此我没有接触过git,但是不管如何git作为目前大火的版本管理工具,了解并掌握是很有必要的,因为你不能确定下一家公司使用的是svn还是git作为版 ...

  7. Git(分布式版本管理工具)

    Git(分布式版本管理工具) 1. Git 概述 1.1 什么是版本控制? 1.2 版本控制工具都有哪些 1.2.1 集中式版本控制工具 1.2.2 分布式版本控制工具 1.3 Git 简史 1.4 ...

  8. Git 版本管理工具(一)

    Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介绍 Git  -- The stupid content tracker(傻瓜式的内容跟踪器) 1. Git 背 ...

  9. SVN集中代码版本管理仓库

    SVN介绍 Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统.Svn版本管理工具管理着随时间改变的各种数据.这些数据放置 ...

最新文章

  1. Python3面向对象编程的三大特性 封装、继承、多态
  2. linux下批量修改文件名精彩解答案例分享
  3. 宏观 量子计算一句话
  4. 以数据为核心的SOC3.0时代到来
  5. POJ - 2135 Farm Tour(最小费用最大流)
  6. 开源API网关Kong基本介绍和安装验证
  7. numpy的生成网格矩阵 meshgrid()
  8. Selenium Webdriver ie 浏览器
  9. Python Matplotlib.plot Update image Questions
  10. C++ 空字符('\0')和空格符(' ')
  11. Github 标星 13K+!这可能是最好的 Java 博客系统
  12. Linux软件包安装之yum的使用
  13. 关于vue编译版本引入的问题
  14. android mvp快速创建,学习MVPArms历程之Android Studio快速创建ArmsComponent组件化项目
  15. 微信扫一扫二维码直接打开手机默认外部浏览器
  16. python窗口显示表格_python表格界面
  17. UI自动化常见的等待方式
  18. EDM数据营销之HTML模板相关问题
  19. duilib学习------网易云信图片中间加文字
  20. 高性能计算机传奇(vamei)

热门文章

  1. options请求_前端数据请求的终极方案
  2. java读取gradle属性,Spring Boot获取Gradle中包的属性
  3. python bs4模块_python爬虫之Beautifulsoup模块用法详解
  4. 智慧城轨信息技术架构及信息安全规范_在深圳,我们打造智慧地铁的“最强大脑”...
  5. python 单行读取文件_python – 在使用for循环读取文件时跳过一行
  6. java中system_《java中System类》 | 学步园
  7. 有趣c语言编程经典例子,C语言简单有趣例子总结ZWF.pdf
  8. 微型计算机的分类有,微型计算机的分类
  9. django 如何提升性能(高并发)
  10. (3)nginx的虚拟主机配置