對於咱們程序員來講,無論你是大神,仍是小魚小蝦,進入公司以後,都用過源碼管理工具,否則你就不是一個合格的程序員,如今各個公司用於源碼管理工具一般有下面兩種:
第一種,git:使用git的公司應該是最多的。
第二種,svn:目前咱們公司使用的就是svn。
固然,他們二者的區別,在這裏就不作解釋了,通常選擇用什麼源碼管理工具,通常會是整個項目的負責人來選擇。
在iOS開發中,最好用的svn的Mac版源碼管理工具就是Cornerstone,下面介紹CornerStone的使用:
1、安裝
CornerStone是收費,若是是公司須要使用到,建議讓公司購買軟件使用版權,支持正版,固然網上也是有破解版本的。
2、配置SVNgit
Paste_Image.png程序員
打開Cornerstone,點擊「+」號,添加一個倉庫。服務器
Paste_Image.pngsvn
https://192.168.1.11:443/svn/FXBest
一、Protocol:分爲HTTP和HTTPS,若是公司給你服務器地址是HTTPS的話,就選擇HTTPS,反之,就選擇HTTP。
二、Server:填寫服務器地址,例如:工具
192.168.1.11
三、Port:服務器地址中端口號,固然有時候是不須要填寫的,使用默認的就能夠了,例如:測試
192.168.1.11:443
四、Repository path:svn倉庫的訪問路徑
五、NickName:倉庫顯示的名稱
六、用戶名
七、密碼調試
ps:
一、填寫好以後,會自動生成,這樣的一串路徑。若是你填寫完以後不是這種svn://用戶名@主機地址:端口號/路徑的格式,則說明填寫有誤。例如:code
https://michael@192.168.1.11:443/svn/iOS
二、小技巧,通常進入公司,項目負責人會給你開svn的帳號,而後會把svn的路徑發給你,拿到這串路徑,直接複製一下,而後切換到CornerStone,發現svn的路徑會自動填充到CornerStone上面。
3、基本使用
一、上傳項目到遠端倉庫repository
能夠直接將文件或者文件夾拖到repository的子文件夾中,或是選擇軟件上方的Import按鈕上傳,會彈出選項填寫所在位置及名稱,而後選擇Import便可。開發
Paste_Image.png源碼
二、下載項目
Paste_Image.png
通常分爲:Export和Check Out
他們的區別在於,Export後的項目不會與repository中的源文件相關聯,是一個獨立的版本,而Check Out下來的文件會建立一個working copy,此文件與repository中源文件相關聯,當有別人修改或是本身修改時,working copy會顯示修改數量,白色數量爲別人修改數量,灰色數量爲本身修改數量,因此若是你是項目中的開發人員,能夠選擇check out,若是隻是下載查看,不但願本身的修改影響到整個項目,最好是選擇Export。
三、版本管理
每一次提交會建立一個新版本,在repository中會保存全部歷史版本,可經過修改人及提交信息進行檢索版本,因此用svn開發能夠很好的控制項目出現不可解決及未知bug時代碼的修復問題,例如:
Paste_Image.png
ps:注意事項:
一、先更新後提交,當你看到你check out下來的項目有白色圈時,說明有人已經提交了代碼,這個時候,你應該先update一下,直至working copy再也不顯示白色圈,而後運行一下項目,確保項目沒有衝突或者丟失的文件,而後在commit本身的代碼。不然,會形成項目中出現多處衝突或者覆蓋掉別人提交的代碼。
二、在項目開發階段,最好每次開發完一個獨立的功能,或者在測試階段,解決一個bug以後再提交代碼到svn,不要連續屢次重複提交,形成版本過多過雜。而且每次提交時務必填寫提交信息,方便查看歷史版本。
小技巧:
一、靜態文件上傳。在項目中引入第三庫,在本地運行項目,發現沒有任何問題,可是提交到svn,其餘人update以後,在運行項目發現報錯,頗有多是靜態文件沒有上傳到svn形成的。
屏幕快照 2016-07-16 下午12.02.16.png
選擇Preferences
Paste_Image.png
勾選Use default global ignores,刪除.a後,點擊save。
而後,會發現check out下來的項目中會有這些問號的文件存在(下面的圖只是爲了舉例使用),把這些帶有問號的文件commit到svn,問題就解決了。
Paste_Image.png
4、CornerStone常見的圖標含義
Paste_Image.png
若是,你想working copy下來的項目中作了修改,那麼在修改以後的文件後面會有一個「M」的標誌。
Paste_Image.png
若是,你想working copy下來的項目中新添加一個文件,那麼新添加以後的文件後面會有一個「?」的標誌,此時你須要點擊add,添加到working copy下來的項目中,而後在commit。
Paste_Image.png
Paste_Image.png
若是,你想working copy下來的項目中刪除一個文件,那麼刪除以後的文件後面會有一個「D」的標誌。
若是,你想working copy下來的項目中A和B同時修改了同一行代碼而後commit到svn,那麼衝突以後的文件後面會有一個「C」的標誌。
ps:原則上同一組開發人員最好不要在同一文件中進行操做,但有時候必須去其餘文件中進行操做,或者是誤操做,若是同時多人在同一文件的同一位置修改代碼,後提交的人會出現版本衝突文件,通常會有三個一樣名稱不一樣後綴的文件。
20150531131942823.png
其中.mine文件:本人所作修改,兩個.r0XX文件:XX爲數字,數字較小的爲更改前的文件,較大的爲更改後的文件,在文件中會有<<<< mine .r0XX和>>>>>等字樣包含起來的代碼,即衝突的地方,此時請和組內同事討論或本身刪除某部分修改文件後進行調試,修復文件。
5、建立分支和Tag
Paste_Image.png
Paste_Image.png
一、選擇項目所在的遠程倉庫
二、選擇要建立分支的項目
三、右鍵或者點擊上圖選擇Branch
四、選擇分支存放的路徑
ps:Branch As:分支的名稱
Where:把分支存放在什麼位置
Tag同Branch同樣
6、Merge
Paste_Image.png
若是兩個分支須要合併到主幹,Checkout到本地,點擊須要合併到的項.
點擊Merge
點擊Sychronize Branch:選擇須要從被合併的項目(merge from)合併到這裏,而後提交就能夠了(若是同時有兩個分支,最需仍須要在分支上修改的話,先合併一個分支到主幹,而後主幹在合併到另外一個分支,修改衝突後提交,前提是,剛開始主幹和兩個分支的代碼同樣,參考上邊的步驟生成)
ps:1.在workcopying中選擇目標copying,而後點擊Merge,如圖所示
2.選擇Mergefrom的copying
3.Merge以前cornerstone會進行dry run,進行merge分析和預覽
4.確認無誤後Merge Changes (該操做是本地操做,注意解決衝突後在commit)
7、cornerStone錯誤異常處理
一、
1272323-46573a888e452b07.jpg
主要是因爲你操做異常致使的,解決方案是,把生成的錯誤文件刪除,而後在從新安裝一下就能夠了。
1272323-91a005057575e393.jpg
把紅色箭頭部分的文件刪除就能夠了。
二、
Paste_Image.png
本地代碼版本號與服務器當前最新版本號不一致致使
點擊update to latest,更新服務器最新的就能夠了。
先寫這麼多,之後遇到問題會有更新。