Mercurial 版本管理系統簡介 v.s. Google Code 線上備份Server

前言:
今天意外看到Google Code這個由Google 提供的免費線上備份程式碼服務
重新燃起應用SVM(原始碼版本管理)軟體管理專案的念頭
google一下之後(還是逃不出google的制約)
進入google code的首頁申請了我的第一個google code project
也展開一連串的嘗試過程
以下是精簡版

一 申請google code
進入http://code.google.com/intl/zh-TW/首頁
選取左中的"專案托管"
在這邊理應開始創建專案,不過似乎沒有馬上創建的按鈕,輾轉從Contribute找到"Create Project"的連結
點進去填妥基本資料之後,專案也創建完畢

二 取得網址跟密碼
Goole Code提供的無非是備份的空間,這是廢話,所以其他眼花撩亂的額外功能可以不予理會
直接點取上方的Source Tab, 就會顯示本專案的下載網址
以我的測試網站為例,就是  http://code.google.com/hosting/createProject
這邊還有另外一件工作,就是取得上傳用的使用者名稱跟密碼
使用者名稱就是google的登入帳號,密碼請按下"googlecode.com password."就可以看到
以上完成Server端的準備工作


三 使用Mercurial SVM軟體
三點一 下載客戶端軟體
請到Mercurial的官網下載
三點二 SVM 概念
這一節其實是最重要的,不過既然是紀錄文就讓它跟安裝平起平坐吧!
以下都以Mercurial介紹,SVN那套中央集權的SVM請自行嘗試
三點二點一 從新開始一個新專案
簡單的流程如下:
 => mkdir建目錄:這不用多講了吧
=> hg init 初使化 : 產生控制用的.hg目錄
=> ***加入並編輯第一版的程式碼***
=> hg status 觀察修改狀況: 這裡會看到一堆問號跟檔名,他們就是即將被送進資料庫的檔案
=> hg add: 確認這次新增的檔案
=> hg commit:真正執行上傳的動作,不過注意在此例中資料庫初始化是在本地做的,意思就是東西只會存在本地,網路更新後面才會提到

三點二點二 clone直接複製既有專案
簡單的流程如下:
hg clone *******網址*****: 下載原始碼資料庫

> ***加入,編輯,刪除,修改程式碼***
=> hg status 觀察修改狀況: 這裡會看到一堆問號跟檔名,他們就是即將被送進資料庫的檔案
=> hg add: 確認這次新增的檔案
=> hg remove: 確認這次要移除的檔案,這兩個動作也可以一起做,指令是 hg addremove
=> hg commit:真正執行上傳的動作,同樣沒有送到遠端,只是更動本地資料


三點二點三 分散式編輯 集中式合併
這部份官方文件寫的很清楚,就不贅述了

三點二點四 PUSH
這裡其實是我最疑惑的一段,也是最想提的一段
在之前應用SVN的經驗,執行完commit之後,所有的更動就會自動送到遠端去了
不過顯然Mercurial不是這麼一回事,對他們來說commit到本地目錄存檔就算記錄下來了
等要合併時才一次送出去,指令就是PUSH
hg push http://*username*:*password*@*url*
這樣才是真正完成上傳動作,我們也可以在google code的頁面看到更新的訊息

四 終結專案
完成專案階段性任務的時候,請到google code的右上Administer => Advanced裡面按下自爆按鈕
專案正式的終結,不過請注意檔案不會馬上刪除,過一陣子google會自行清理
如果不想東西見光的,要注意這個地方,
刪除可能是幾天或者幾年或者他們覺得硬碟空間多到用不完,永遠都會在也不一定
不過既然採用了google code就不會不知道這邊是專門提供給Open Source的備份Server
放上來就要有被看光光的準備,就醬

留言

匿名表示…
抱歉...小弟想請教一個問題...
您的部落格直接在google上就可以搜尋到,為什麼我的不行呢?
簡單答案:因為我是用google的blog
完整回答:有的網站會阻止google機器人訪問

不妨貼你的網址上來,會比較清楚

這個網誌中的熱門文章

RTC & CMOS 技術詳解

[自由網路] 如何取得 Google Drive (真實)外連位址 (Direct Link)