iOS版本管理工具SVN

1.版本管理工具包括

        CVS(已过时)

        SVN(常用)

        GIT(高大上) (GitHub, OSChina)

2.实际使用步骤:

    1. 安装SVN服务器

    2. 创建仓库

    3. 创建用户

    4. 为仓库添加用户

    5. 经理初始化项目并进行忽略xcuserdata操作

    6. 其他同事Checkout检出进行开发

    7. 李四新人加入,新人需要 源代码,需求文档,接口文档,效果图, 源代码一般先分配只读权限,熟悉代码之后再分配Write权限


3.SVN服务器安装:

  Windows:安装Visual SVN Server(项目经理或系统维护人员操作)

 1. 安装SVN 服务器

                      





2.创建仓库


                                    

3. 创建用户

                       

 

 4. 初始化项目


客户端:

Mac :  Cornerstone(常用)、Versions、Xcode、Command Line

     

Command Line(命令行):

         svn checkout 服务器地址 --username=xxx --password=xxx

         svn add  文件名

         svn commit  -m "注释"

         svn update

         svn resolve 文件名

         svn update -r版本号        // 还原到指定版本内容

         svn merge -r最新版本:回退版本 文件名

         svn revert  文件名

         svn remove 文件名

         svn log                        // 查看版本信息

        svn status

Cornerstone

一般情况下用Cornerstone进行项目初始化、忽略操作、打版本、分支、合并到主干操作,平常经常使用的更新、提交、冲突 使用Xcode中的Source Control 即可!
Cornerstone可以忽略xcuserdata文件,而Xcode不能忽略该文件
使用该工具应特别注意:一定要使用 Command + R 经常 刷新,因为Cornerstone不会主动刷新,会造成本地和Cornerstone上的文件内容不一致,不是最新的,在做版本备份和打分支的时候版本号也不是最新的,如果版本号不是最新的,会出现麻烦,因为版本都打错了

操作步骤:

1. 连接远程仓库
2. 检出trunk
3. 初始化项目并删除xcuserdata
4. 重新生成xcuserdata并进行忽略操作并提交
5. 其他同事开始开发



Working copies:工作区     
Repositories:仓库

1. 连接服务器仓库


2. 将远程仓库中的trunk代码检出到本地



3. 在检出的目录下面创建工程,并提交





4. 删除两个xcuserdata文件夹


删除之后,要再update一下,然后再提交。

5.生成xcuserdata,并进行忽略操作

删除ViewController中内存警告方法,将目录结构折叠起来,并在viewDidLoad方法中加一个断点,这样查看Cornerstone poeject.xcworkspace目录下还会生成两个xcuserdata,并对其忽略操作! 然后先Update 再 Commit提交,然后修改一下ViewController中的viewDidLoad方法,使用Source Control -->Commit 当再一次修改源代码提交的时候就不会再有User Data 之类的文件了



6. 再次提交时,发现已没有User Data文件夹了,可直接提交




xcuserdata包含的内容

记录用户上次打开的文件,用于xcode下次打开时,直接打开该文件
记录目录打开的情况,以便xcode下次打开的时候还原上次的状态
记录用户打的断点信息

Project Settings: 该配置文件需要共享, 该文件包含文件目录位置

至此,初始化已完成,其他同事即可检出进行开发了,在之后的更新、提交、冲突操作可以直接使用Xcode中的Source Control进行管理即可

在Xcode中使用SVN注意点:

1. Xcode中的SVN不识别 【静态库 .a 文件(静态库包含实现代码,但不能被看到,保护核心源代码)必须使用命令行方式进行添加
svn add Xxx.a    然后Source Control ----> Commit 提交
2. Storyboard会被翻译成XML,一但Storyboard冲突,要想解决只能去修改晦涩的XML了,不忍直视!所以千万别让storyboard冲突,尽量只有一个人在操作Storyboard,但一般情况下app项目是按模块开发的,所以一般一个模块只有一个人在维护,这也减少了冲突的机会

SVN状态:
A:被添加到本地代码仓库
M:被修改
C:冲突
D :被删除
I: 被忽略


trunk: 主线开发
branches:为了修复tags中的bug,一般以fixbug作为后缀
tags:版本备份

1. 项目经过3个月的努力通过测试,完成了1.0版本,并已经上到App Store了;
2. 将trunk下的这份代码打成1.0版本放到tags下进行版本备份Xxx1.0
3. 开发人员接着开发第二个版本2.0
4. 在开发第二个版本的时候,用户反馈第一个版本有一个重大bug需要紧急修复,开发人员需要将1.0版本的代码做成一个分支并起名Xxx-fixbug
5. 接着开发人员checkout这个分支,并修复bug,并上传到app store, 并将该份代码进行1.1的版本备份 ,Xxx1.1
6. 接着需要将分支合并到主干中并提交,并删除分支中的项目
7. 开发人员接着开发2.0版本

多更新,多提交,不要每天只提交一次,做好一个小模块或小功能就可以考虑提交,尽可能的避免冲突


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

风流 少年

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

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

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

打赏作者

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

抵扣说明:

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

余额充值