XCode自帶SCM以及SnapShots用法 圖文并茂
XCode自帶Source Control Manager(SCM)以及SnapShots用法是本文要介紹的內(nèi)容,在隨著代碼的更新,客戶需求的變化我們總是需要時(shí)常的去改變代碼,或者是用這當(dāng)前的代碼去做測試,但是總有不注意忘備份的時(shí)候,所以很多開發(fā)者寫測試代碼的時(shí)候把源文件改的一塌糊途。在Mac上,Xcode已經(jīng)自帶了一些管理代碼的形式。
1.先說說XCode自帶的SCM工具吧,這個(gè)工具主要是為了項(xiàng)目組內(nèi)大家共享同一份代碼,將source code放在服務(wù)器上,當(dāng)然用于個(gè)人的代碼管理也是很不錯(cuò)的啊1.1 先說說配置服務(wù)器,主要是先要建一個(gè)svn的庫(我主要以本機(jī)當(dāng)服務(wù)器用來配置,如果單獨(dú)使用別的配置也是一樣, 詳見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選項(xiàng),選擇Repositories,在這里大家應(yīng)該都可以看到自己已經(jīng)增加的 Repositories,如上圖所示的應(yīng)該就是test, 通過Import可以導(dǎo)入工程文件(這里請記住導(dǎo)入的工程要把build文件夾刪除,不然以后同步的時(shí)候會(huì)出錯(cuò),因?yàn)檫@個(gè)里面包含有很多用戶信息以及系統(tǒng) 的配置信息), Check out選項(xiàng)可以下載下***的source code, 后面的create Directory, Copy, Move, Delete就不一一說明了,我想大家一用就能明白.
1.4 使用SCM管理工程打開工程后在Xcode->SCM菜單里,選擇confiure SCM for this project...出現(xiàn)如下對話框,選擇自己的Repositories,如下圖選擇的是TestSVN
下面看看我們想要看到的重心,在選擇工程文件->get Info,可以調(diào)出對話框
當(dāng)然對于每一個(gè)文件的話,也可以選擇文件->get Info,調(diào)出同樣的對話框,這里我們可以看到自己對文件的注解,以及修改記錄,可以選擇任一次記錄與當(dāng)前的工程進(jìn)行比較,也可以update到某一個(gè) revision. 也可以通過XCode->SCM的子菜單來進(jìn)行操作
剛對一個(gè)文件進(jìn)行更改或是更新后都會(huì)標(biāo)示出來,如下所示:
文件的標(biāo)示狀態(tài)簡介如下:
當(dāng)更改完代碼后可以選擇文件或是工程,然后選擇commit changes...覺的有一點(diǎn)一定要提示的是:對于一個(gè)文件工程有project file和user file, project file是以project.xcodeproj命名的,如果我們改動(dòng)架構(gòu)性的東西時(shí),一定要同時(shí)commit此文件,比如說我們增加或是刪除一個(gè)文件 時(shí),當(dāng)我們同步增加的文件到repositories的時(shí)候,也要同時(shí)同步project.xcodeproj文件。
再看一下SnapShot功能吧,這個(gè)功能好像只是在XCode 3.0以后才加上的, 這個(gè)功能用來管理個(gè)人的source code是很好用的,但是不能協(xié)同工作,下面我也簡單的介紹一下吧.
1、首先當(dāng)我們打開一個(gè)工程后,在File菜單下有Make Snapshot和Snapshots這二項(xiàng),整個(gè)的使用我們可以全部靠這二個(gè)菜單項(xiàng)目來完成.
2、當(dāng)選擇一次Make Snapshot后,你打開SnapShots對話框就可以看到你做的處理,當(dāng)然你可以進(jìn)行注解
3、管理工程
當(dāng)你看到上面的對話框時(shí),我想你基本上已經(jīng)會(huì)使用了,對, 使用起來就是這么簡單的,你可以restore到你任何狀態(tài),也可以對二個(gè)文件進(jìn)行比較,注解等. 當(dāng)然后有一點(diǎn)我覺的我有責(zé)任要弄清楚就是如果我們換一臺(tái)機(jī)器是不是這個(gè)就會(huì)丟失了?不是的, 在~/Library/Application Support/Developer/Shared/SnapshotRepository.sparseimage目錄下保存的就是Snapshots 的信息,當(dāng)你換機(jī)器了,你也不會(huì)丟失關(guān)于工程的歷史改動(dòng)信息,不過需要配置一下,SnapshotReository里面的一個(gè)plist文件,因?yàn)檫@里 保存了你原始工程的路徑等常用信息,不過我相信大家一看就能明白.
SCM里選項(xiàng)的功能最主要的還是同步代碼的同步,比較等吧,我也是正在學(xué)習(xí)階段,有不對的地方還請大家指點(diǎn)出來.Add to Repository -- 當(dāng)增加文件到工程時(shí),要選此項(xiàng)目將新加的文件增加到服務(wù)器上Resolved -- 此項(xiàng)應(yīng)該是當(dāng)自己改動(dòng)的文件與服務(wù)器上存放的文件有沖突時(shí)是否仍然要同步文件,以當(dāng)前的文件為準(zhǔn),不過因?yàn)槲夷壳爸皇枪芾碜约旱拇a還沒有使用過 Commit Changes... -- 同步自己的改動(dòng)文件到服務(wù)器上,這個(gè)是比較常用的,當(dāng)文件前出現(xiàn)M, A等時(shí),而又要確認(rèn)更改時(shí)就可以選此項(xiàng).Discard Changes... -- 放棄當(dāng)前的所有改動(dòng),回滾到last vision
Compare With與Diff With這二個(gè)選項(xiàng)都是用來比較文件的,二者的不同可以自己嘗試一下,Compare With是對二個(gè)版本的文件進(jìn)行比較,而diff With會(huì)給出二者文件的不同的信息.
Commit Entire Project.. -- 這個(gè)類似于Commit Changes功能,不過這個(gè)是對整個(gè)的文件同步Refresh Entire Project -- 刷新一下本地工程文件Update Entire Project -- 更新本地工程文件,與服務(wù)器同步.
小結(jié):XCode自帶Source Control Manager(SCM)以及SnapShots用法的內(nèi)容介紹完了,希望本文對你有所幫助!
在這里給出一下ADC的文檔鏈接,英文水平過的去的,都可以看看這個(gè),比較詳細(xì)
https://developer.apple.com/iphone/library/documentation/DeveloperTools/Conceptual/XcodeSourceManagement/10-Introduction/chapter_1_section_1.html