SVN

基本操作

svn checkout:将服务器代码完整的下载到本地
svn commit:将本地修改的内容,提交到服务器
svn update:将服务器最新的代码下载到本地

check只需要做一次

提醒:

每天下班前 commit “可运行版本”
每天上班前 update前一天所有代码

使用环境

  • 想要利用SVN管理源代码,必须得有2套环境
服务器

用于存储客户端上传的源代码
可以在Windows上安装Visual SVN Server
大部分情况下,公司的开发人员不必亲自搭建SVN服务器

客户端

上传本地的源代码到服务器,或者更新服务器的代码到本地,保持同步
可以在Mac上使用命令行 Versions,Cornerstone,Xcode

文件状态各种符号说明

  • ‘’ 没有修改
  • ‘A’ 被添加到本地代码仓库
  • ‘C’ 冲突
  • ‘D’ 被删除
  • ‘I’ 被忽略
  • ‘M’ 被修改
  • ‘R’ 被替换
  • ‘X’ 外部定义创建的版本目录
  • ‘?’ 文件没有被添加到本地库内,不再SVN的管理之下
  • ‘!’ 文件丢失或者不完整(不识别该文件)
  • ‘~’ 受控文件被其他文件阻隔
  • ‘U’ 更新最新的代码到本地(本地有文件的情况下)
  • ‘G’ 产生冲突后,更新操作去解决冲突,相当于进行合并

一、命令行演示

1.项目经理将服务器的已有的内容下载到本地
  • svn checkout 服务器地址 --username=… --password=…
2.项目经理初始化项目
  • touch main.m : 创建main.m
  • svn add main.m : 将main.m添加到svn的管理之下
  • svn commit -m “初始化项目” main.m : 将main.m上传到服务器(main.m是一个文件名,如果不写文件名就会将本地svn所有没有上传的文件全部上传至服务器)(-m “初始化项目”,这是一个注释)
3.查看文件状态(查看文件是否在SVN的管理之下,或者是否进行了修改而没有提交)
  • svn status
4.张三加入开发

1 > 将服务器所有的内容下载到本地

  • svn checkout 服务器地址 --suername=zs --password=zs

2 > 开始开发

  • touch person.h person.m : 创建person类
  • svn commit -m “创建了person类”

3 > 经理更新代码

  • svn update:更新服务器最新的代码(如果改文件在本地不存在则下载,如果本地存在则更新)
5.命令行的简写
  • svn checkout -> svn co 将文件从服务器下载到本地
  • svn status -> svn st 查看文件状态
  • svn commit -> svn ci 将本地文件上传到服务器
  • svn update -> svn up 更新代码
6.版本回退
  • svn revert person.h : 将本地新增的内容(没有提交到服务器),删除
  • svn update -r6 : 先回退到某个版本,观察下该版本是否是想要的那个版本
  • svn update : 更新到最新的版本
  • svn merge -r7:6 person.h
    注意:如果本地版本号低于服务器的版本号,那么不能提交
7.删除文件
  • svn remove(rm) person.m
8.查看版本信息
  • svn update : 更新服务器最新的内容
  • svn log : 查看版本信息
9.公司常用的命令
  • svn update: : 更新
  • svn commit -m “注释” : 将本地的代码提交到服务器

二、李四加入开发(进入公司)

1 > 需要向项目经理要一些东西

  • 服务器地址,以及账号和密码
  • 需求文档:有什么需求,做什么样的功能
  • 接口文档:详细的记录服务器所有的接口
  • 效果图:界面到底长成什么样子

2 > 将服务器已有的内容下载到本地

  • svn checkout 服务器地址 账号和密码
  • touch dog.h dog.m:创建dog类
  • svn add * : 将不在svn管理之下的所有文件添加到svn的管理之下
  • svn commit -m “添加dog类”

3 > 代码冲突

  • out of date :本地版本号低于服务器的版本
  • df:在命令行中展示所有的不同
  • e:在命令行中来编辑冲突
  • mc : 用我的本地的代码来覆盖服务器的代码
  • tc : 用服务器的代码来覆盖我的代码
  • p : 延迟解决冲突,展示所有冲突的文件,手动解决冲突 -> svn resolved person.h(person.h是出现冲突的文件)

注意:
1 > 尽量在修改文件之前先update
2 > 如果修改公共文件最好跟同事说一声,让他先别修改,修改完之后让他更新

三、图形化界面工具

1. 项目经理初始化项目

1 > 项目经理将服务器已有的内容下载到本地

记住format的选择 ->1.7

2 > 需要忽略的文件

  • xcode会默认记录之前停留文件,下次打开依然停留在该文件,这个不需要共享
  • xcode会默认记录之前目录的打开情况,同时不需要共享
  • 断点信息,不需要共享
  • xcuserdata
2. 在Xcode中使用svn的注意点

1 > 如果使用到静态库需要特别注意,必须使用命令行将静态库(.a文件)添加到svn的管理之下

  • 先来到静态库的文件夹,和.a文件同一个目录,之后利用终端(svn add libRegex.a)libRegex.a是静态库的文件名称

2 > 如果使用到了storyboard也需要特别注意

  • 如果能使用xib,尽量使用xib
  • 如果在项目当中使用到了storyboard,尽量保证只有一个人在操作storyboard

3 > checkout的方式

  • 使用命令行
  • 使用cornerstone(图形化界面工具)
  • Xcode

4 > 公司开发技巧(避免冲突)

  • 尽量写一些代码就提交到服务器,时时跟服务器的代码保持同步
  • 尽量提前半小时提交代码

目录规范

正规项目的SVN目录结构一般有3个文件夹
  • trunk:主干,当前开发项目的主目录
  • branches:分支目录,添加非主线功能时使用,开发测试之后,可以合并到主干项目中
  • tags:标记目录,通常作为重大版本的备份
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iOS开发疯狂者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值