Friday, February 6, 2009

兩個人不使用伺服器情況下使用Mercurial


一個只有兩人開發的小型專案在開發人員都在不同地方的情況,架設一台24小時開啟固定IP的伺服器當作版本控管也許有點浪費。在此介紹使用NetBeans 6.5與Mercurial讓兩個開發人員在沒有伺服器的情況下互相分享專案。

與傳統版本控管不同,在使用Mercurial時,每一個人都擁有自己的檔案庫(repository),只要與對方的檔案庫作到同步即可。假設專案的開發者分別為阿蛙跟阿宅,由阿蛙起始新的NetBeans專案後將自己的檔案庫寄給阿宅。阿宅在匯入檔案庫後有了自己專屬的檔案庫就可進行開發。此後雙方互向以電子郵件寄自己的檔案庫給對方就可以了。以下為同步步驟:

  1.  阿蛙將新的NetBeans專案初始給Mercurial管理。
    操作:[Versioning] -> [Mercurial] -> [Initialize Project]
  2. 阿蛙將該專案路徑所有內容壓縮寄給阿宅。
  3. 阿宅收到壓縮的內容後解開到一個將來會固定放置阿蛙檔案庫的路徑下。
  4. 於NetBeans中,阿宅將阿蛙檔案庫複製進來。
    操作:[Versioning] -> [Mercurial] -> [Clone Other...]
    輸入阿蛙檔案庫路徑後阿宅就取得了新的由Mercurial控管的專案。
  5. 阿宅對專案做了修改後將修改內容送交(commit)到他自己的檔案庫。
    [Versioning] -> [Commit...]
    在輸入送交的註解後按送交。
  6. 等到阿宅作了足夠的更改與送交後將自己的檔案庫(及專案路徑)壓縮寄給阿蛙。
  7. 阿蛙收到阿宅的檔案庫後一樣將他壓縮到一個將來固定放置阿宅檔案庫的路徑。
  8. 阿蛙先在NetBeans中設定好專案將來都從阿宅資料庫匯入修改。
    操作:[Verisoning] -> [Mercurial] -> [Properties...]
    修改default-pull屬性,設定為解壓縮後的阿宅檔案庫路徑。
  9. 阿蛙需要在NetBeans中將阿宅作的修改抓(pull)到自己的專案。
    操作:[Versioning] -> [Share] -> [Pull from - default]

之後阿蛙也用相同方式將自己的檔案庫寄給阿宅兩人就可以互相同步了。