XCode自带Source Control Manager(SCM)以及SnapShots用法是本文要介绍的内容,在随着代码的更新,客户需求的变化我们总是需要时常的去改变代码,或者是用这当前的代码去做测试,但是总有不注意忘备份的时候,所以很多开发者写测试代码的时候把源文件改的一塌糊途。在Mac上,Xcode已经自带了一些管理代码的形式。
1.先说说XCode自带的SCM工具吧,这个工具主要是为了项目组内大家共享同一份代码,将source code放在服务器上,当然用于个人的代码管理也是很不错的啊1.1 先说说配置服务器,主要是先要建一个svn的库(我主要以本机当服务器用来配置,如果单独使用别的配置也是一样, 详见http://www.cocoachina.com/bbs/htm_data/2/0808/317.html
打开终端->cd到想要安装的目录下->svnadmin create-> svnadmin create lib,见图
1.2 xcode SCM端的配置
这些都是yile教我的啊,呵呵,谢谢喽.1.3 配置Repositories通过XCode菜单的SCM选项,选择Repositories,在这里大家应该都可以看到自己已经增加的 Repositories,如上图所示的应该就是test, 通过Import可以导入工程文件(这里请记住导入的工程要把build文件夹删除,不然以后同步的时候会出错,因为这个里面包含有很多用户信息以及系统 的配置信息), Check out选项可以下载下***的source code, 后面的create Directory, Copy, Move, Delete就不一一说明了,我想大家一用就能明白.
1.4 使用SCM管理工程打开工程后在Xcode->SCM菜单里,选择confiure SCM for this project...出现如下对话框,选择自己的Repositories,如下图选择的是TestSVN
下面看看我们想要看到的重心,在选择工程文件->get Info,可以调出对话框
当然对于每一个文件的话,也可以选择文件->get Info,调出同样的对话框,这里我们可以看到自己对文件的注解,以及修改记录,可以选择任一次记录与当前的工程进行比较,也可以update到某一个 revision. 也可以通过XCode->SCM的子菜单来进行操作
刚对一个文件进行更改或是更新后都会标示出来,如下所示:
文件的标示状态简介如下:
当更改完代码后可以选择文件或是工程,然后选择commit changes...觉的有一点一定要提示的是:对于一个文件工程有project file和user file, project file是以project.xcodeproj命名的,如果我们改动架构性的东西时,一定要同时commit此文件,比如说我们增加或是删除一个文件 时,当我们同步增加的文件到repositories的时候,也要同时同步project.xcodeproj文件。
再看一下SnapShot功能吧,这个功能好像只是在XCode 3.0以后才加上的, 这个功能用来管理个人的source code是很好用的,但是不能协同工作,下面我也简单的介绍一下吧.
1、首先当我们打开一个工程后,在File菜单下有Make Snapshot和Snapshots这二项,整个的使用我们可以全部靠这二个菜单项目来完成.
2、当选择一次Make Snapshot后,你打开SnapShots对话框就可以看到你做的处理,当然你可以进行注解
3、管理工程
当你看到上面的对话框时,我想你基本上已经会使用了,对, 使用起来就是这么简单的,你可以restore到你任何状态,也可以对二个文件进行比较,注解等. 当然后有一点我觉的我有责任要弄清楚就是如果我们换一台机器是不是这个就会丢失了?不是的, 在~/Library/Application Support/Developer/Shared/SnapshotRepository.sparseimage目录下保存的就是Snapshots 的信息,当你换机器了,你也不会丢失关于工程的历史改动信息,不过需要配置一下,SnapshotReository里面的一个plist文件,因为这里 保存了你原始工程的路径等常用信息,不过我相信大家一看就能明白.
SCM里选项的功能最主要的还是同步代码的同步,比较等吧,我也是正在学习阶段,有不对的地方还请大家指点出来.Add to Repository -- 当增加文件到工程时,要选此项目将新加的文件增加到服务器上Resolved -- 此项应该是当自己改动的文件与服务器上存放的文件有冲突时是否仍然要同步文件,以当前的文件为准,不过因为我目前只是管理自己的代码还没有使用过 Commit Changes... -- 同步自己的改动文件到服务器上,这个是比较常用的,当文件前出现M, A等时,而又要确认更改时就可以选此项.Discard Changes... -- 放弃当前的所有改动,回滚到last vision
Compare With与Diff With这二个选项都是用来比较文件的,二者的不同可以自己尝试一下,Compare With是对二个版本的文件进行比较,而diff With会给出二者文件的不同的信息.
Commit Entire Project.. -- 这个类似于Commit Changes功能,不过这个是对整个的文件同步Refresh Entire Project -- 刷新一下本地工程文件Update Entire Project -- 更新本地工程文件,与服务器同步.
小结:XCode自带Source Control Manager(SCM)以及SnapShots用法的内容介绍完了,希望本文对你有所帮助!
在这里给出一下ADC的文档链接,英文水平过的去的,都可以看看这个,比较详细
https://developer.apple.com/iphone/library/documentation/DeveloperTools/Conceptual/XcodeSourceManagement/10-Introduction/chapter_1_section_1.html