Appcode 使用之SVN
Appcode的使用方法在這里不作過多介紹,具體可以參照help里相關信息,這里只是對其內部的svn的使用作一個簡單介紹。
Appcode的svn是作為其插件內置在軟件里,而作為同樣屬于JetBrains系列的Intellij(java開發)和WebStorm(html,js),他們的插件體系均相同,因此他們的svn的使用方法原則上來講是一樣的,包括谷歌的安卓studio,其實也是基于JetBrains二次開發,所以看他們的操作界面,基本上很像,而svn的使用,可以說是一樣的。
一、svn設置
不管進行任何操作,軟件內部都是通過svn內部命令在進行,如果沒有配置好,任何操作都會有問題。
如果第一次打開項目,如上圖,選擇configure->Preferences,可以直接進入到設置,如果是已經打開了項目,則選擇左上角也可以找到Preference,其實就是軟件的偏好設置,具體為Preference->Version Control->Subversion,具體最后如下圖:
(1).標記1為svn的命令路徑,這里很重要,默認安裝appcode后這里的路徑應該是錯誤的,就寫了個“svn”,這樣的話肯定是錯誤的,常規來說,mac系統的svn的路徑為usr/bin/svn,最好去本地finder搜下,該路徑是否存在,svn文件是否存在。這里設置好了以后,appcode就會使用路徑里的svn來進行代碼的管理,如果路徑錯誤,內部就沒有辦法執行svn命令。
(2).標記2為svn的配置設置,也就是svn的配置文件夾,它會保存一些svn的配置信息,比如你登錄過的svn服務器的密碼什么的,省去下次再次輸入密碼。這里有個大坑,可以看到,這里默認是勾選了“默認設置文件夾”,但是這個路徑實際上是沒有這個文件夾的,而這個文件夾如果設置不對,svn也是不能使用的。
解決辦法:可以選擇把這個默認的文件夾新建出來,名字為.subversion,也可以去掉勾選,自己選擇一個自己想保存的路徑。但是一定要注意,這個大坑在于,這里即使你換成了別的路徑,下次新建一個項目的時候,它這里也會變成默認勾選以及默認的配置路徑,只要這個路徑不對,svn就用不了。我一般是替換成自己專門的配置路徑,每次新建項目或者checkout項目之前先設置好這個路徑,如下:
這樣,svn設置就已經設置好了,svn應該是可以正常使用了。
二、導入項目
打開項目后,選擇上方導航的VCS->Import into SubVersion,會出現遠程倉庫界面Repositories,如下圖,點擊+號即可輸入svn地址,如下圖:
這里輸入svn地址即可,輸入完畢后,再輸入賬號密碼即可,最后選擇需要導入的路徑,點擊Import,這里需要注意的是這個路徑會是你項目的最終路徑,所以最好是新建一個文件路徑,然后再import:
如上圖,如果需要把項目導入到IOS文件夾,需要在這個文件夾下面先遠程建立一個工程文件夾,否則最后import進去后,svn上IOS這個文件夾就作為你的項目了,里面將全是你的項目文件。比如你的本地項目文件夾叫svnTest,你選擇IOS后導入進去后并不會自動生產一個svnTest文件夾,而是會將你本地的svnTest文件夾里的內容全部拷貝進遠程的IOS文件夾里去,正確的做法是,點擊IOS文件夾,右鍵,新建一個svnTest文件夾,然后把本地的svnTest文件夾imort到遠程的IOS->svnTest去,這個需要注意。
點擊import后會出現本地文件夾選擇界面,然后選擇項目文件路徑,輸入要提交的版本信息,點擊OK,文件即上傳到svn了。這個過程和項目無關,你導入任何文件夾到你需要的遠程路徑均可,就是個svn文件上傳操作而已。
三、checkout項目
打開appcode,選擇Check out from Version Control,并選擇從svn,然后出現上面提過的遠程倉庫界面,選擇對應的路徑,點擊Checkout即可。點擊后會讓你選擇路徑,選擇好以后,它會多此一舉的給你列出幾個路徑的可選項,直接確定即可,當然你也可以使用它推薦的路徑名。
四、文件狀態
文件的一些狀態如上圖,這里截圖里我是通過svn先checkout下來這個項目,然后把ViewController的m文件作了修改,打印了一下i這個值,但是可以看到里面我寫錯了,不應該寫
%@
,而應該寫%d
,這樣就產生了一個警告。這里先不做說明為什么這么寫,先看圖解,了解各種文件狀態。
五、提交代碼
如上圖,點擊提交會出現提交界面,幾個xml提交不提交無所謂,它會保存你appcode的使用配置,及時你最后停留的窗口有變動,文件也會變動,所以基本上它是一直在變的。Unversioned Files一般監測出來的文件確實也不需要svn來控制,當然如果你需要提交,也可以勾選了提交。
點擊提交會,如果沒有什么問題,那么就提交成功了,但是如上圖,我這里彈出了一個新的窗口,大致的意思就是說,有一些文件有問題,
No errors and 4 warnings found
,說我有0個錯誤和4個警告,要不要重新Review查看下,這可以說很智能的把svn和代碼相關聯了起來,提交之前先檢測一下代碼中有沒有錯誤和警告,比一些常規的svn工具要爽的多,很多代碼沖突就是因為沒有檢查,有的甚至自己都沒編譯過就提交上去,別人一旦合并就報錯。這里我們選擇Review可以看到,點擊Review后,它把所有的4個警告都告訴我們了,點擊可以直接進入對應的代碼的地方,很方便,這里不僅告訴我%@那個地方寫的有問題,還提示告訴我新增的NewClass文件項目中沒有使用到(appcode把文件或者變量未使用也當做一種警告),按照提示,點擊警告的地方,把%@
修改成%d,本來NewClass沒用到可以刪除的,這里不刪除,直接還是提交。重新點擊右上角的提交按鈕,還是會提示有警告,這次我們忽略,不點擊Review,直接點擊Commit,代碼就提交上去了,可以發現,樹狀目錄里文件的顏色都變成了白色,也就是說和svn上的代碼是一致的了,注意,可能workplace.xml還是藍色,不要管他,這東西隨便在appcode里點一點就算你配置有變化,不影響你試用。
六、下拉代碼
沒什么好說的,提交左邊的按鈕,如果有沖突,解決沖突即可。
七、歷史記錄
加入你編輯中的代碼突然想看下之前的版本什么樣子的,想對比下,在當前代碼文件中,右鍵,LocalHistory->show history即可可以很方便的查看之前在什么時候修改過該文件,另外,還有個強大功能就是在當前文件中選擇LocalHistory->Put Label,則會在本地保存一個版本,當你它會和svn的一起顯示在show history里,但是又不用提交到svn,有時候做到一個關鍵階段,又怕有問題不想傳svn的時候就可以使用它。
八、需要熟悉的地方
這里Version Control需要多熟悉,選項比較多,就不一一講解,但是里面功能還是很常用的,比如按照提交人排序,變動文件排序等等。還能支持分片段提交,比如新增一個片段,只管理部分文件,平時直接提交這個片段就可以,不提交整個項目,避免了不小心動了其他代碼,提交的時候把錯誤的代碼提交上去。
九、總結
appcode,或者說JetBrains的svn管理工具總得來說還是相當好用的,相比其他svn版本控制工具,優勢在于本身是作為插件集成在開發工具中,和開發緊密結合,相當實用,目前在學習后臺開發,開發工具也用的是JetBrains的Intellij,操作是一樣的,上手也快。