May 25, 2011

為project開一個local repository

最近開始研究iOS的開發,就發現xcode真的是一套非常強大的工具。開發過程所需要的東西應該差不多xcode都包含在內了,完全不需要另外去找工具來用。包括version control也是。

在xcode4的Organizer內有Repository的管理工具,如果從xcode新建一個project預設是會開一個local的repository出來的。這邊預設是用git,跟慣用的svn不太一樣。當然內建也是有支援svn的。

用過的人就會知道,svn有一點麻煩的地方是,它會在每一層的資料夾內建一個屬於svn的隱藏檔。在mac上就是.svn的檔案。
之前就有遇過,如果用eclipse作為開發環境(包括symbian與android),在build的時候eclipse會去砍掉gen跟bin的資料夾,然後再從src把資料夾階層複製過來。這樣一來原本gen裡面的.svn就會變成src裡面的.svn,然後就會造成svn軟體錯亂。所以在create svn的時候就要特別小心,不能把gen跟bin commit到svn裡面,當初就是因為這樣,還發生過幾次source全部消失的悲劇,不可不慎!

回到主題。既然現在xcode的local repository就有support git可以用,那當然就來用看看囉。git的設定檔只有在project的根目錄的.git資料夾,如果要砍應該也是非常簡單的。

當然,開發初期自己做一些小程式是沒什麼問題,xcode全部都takecare好了。
那如果今天拿到一份別人開發了一半的資料夾,那該怎麼辦呢?

xcode也十分人性,只要使用git指令先將repository開好之後,xcode就會自己加入Organizer內了。一切就如新開的project一般正常。
所需指令如下$ cd [project_root]
$ git init
$ git add .
$ git commit -a -m "initial commit"


參考文獻: Managing Versions of Your Project 底下Add Git or Subversion Version Control to an Existing Project 一節

06/14 後記。
如果有一個project需要svn(server)與git(local)並存時,git也可以設定ignore某些檔案。
作法為,在project的根目錄建立".gitignore"檔案,該檔案內容為 ".svn"。
如此一來,在commit時就會自動ignore svn的相關設定檔了。
同理,在svn的tool內也應將.git以及.gitignore ignore,以免互相干擾。

0 Comments: