01 9月 2010

[備份] 為什麼你會需要 CVS (版本控制系統) ?

"版本控制" 這個概念其實一直在腦海裡浮浮沉沉地,雖然知道它很重要,但是一直沒能真正下定決定實際照著做。偶爾,以前在做研究,寫論文或是各種投稿的研究結果時,遇到檔案毀損或是電腦當機的狀況時,頂多也只是鼻子一摸,認命地重頭來過。

追根究柢,就是一個「懶」字!

直到最近,在幫人寫一個「很特別」的程式的時候,因為一個不小心,自己把程式原始碼給刪除了,才讓我痛改前非,這下真的來好好研究一下什麼是 CVS (Current Version System,版本控制系統) 或是 Subversion (子版本系統) 吧!

就這樣玩了兩天兩夜…這玩意兒還真是複雜!基本的概念是:你得先設定一個遠端的伺服器,提供一個目錄做為 CVS 使用。接著設定好可以進入這個目錄的使用者權限,然後在本地端產生一個鏡射 (mirrow) 的目錄。再來把遠端和本地端的兩個目錄接起來,這時才能開始操作。操作的時候…要先取得遠端的檔案,然後在本地端進行編輯。編輯完畢,在上傳的時候,系統會自動比對新的版本和舊的版本有什麼不同。如果同一個檔案有很多人編寫的話,那麼還會自動做衝突比對和融合 (merge) 的動作…

等一下下!我只是想找個東西取代「每天開始工作的時候,要先打開檔案,然後依序點選「檔案」>「另存新檔」> 然後取一個加入日期的檔名…」這類重覆又繁鎖的動作而已。而且…誰要和我編寫同一個檔案啊?我向來都是獨立作業的耶!

於是,抱著「總是不斷重新發明輪子」「總是不怕從零開始」的精神,我花了幾分鐘,寫出了 Hama 這支程式的 Linux 版,接著又順手抱著學習的精神編出了 Windows 的版本!

用 Py2exe 在編譯的時候,不禁想…啊…如果當初寫論文的時候,能有這樣的工具的話,就不用每天開始寫的時候都要提心吊膽地怕檔案毀損或是程式當掉了!

程式不大,所以一會兒功夫就編成了一個 exe 檔。看著這支被我取名為 "Hama" (台語「蛤仔」的發音。取其把內容緊緊包住的意思) 的 exe 檔,我想…我編這個幹嘛?我又不會在 MS Windows 的環境下工作… (-_-)

好吧好吧,既然都編出來了…那就來公開好了。說不定在浩翰無垠的宇宙中,正好有另一個生物也會有和我一樣的軟體需求呢!

於是,就在全球最大的開源軟體管理網站 sourceforge 裡註冊,並且開啟了這個叫 Hama 的專案!

現在,只要用滑鼠點兩下,就能輕鬆完成每日備份,然後開始一天的工作,再也不用怕遇到當機或是檔案毀損而要重頭開始了!

下載位置:http://sourceforge.net/projects/hamatar/

同場加映:[說明] Hama 操作手冊

ps. 美國還有一個連鎖藥妝店也叫 CVS。此外,還有一種檔案格式叫 CSV 。我就扯到這裡好了,不然再下去連 CSI、NCIS 的影集甚至 CAS 的肉品和 GPS 的導航系統都要拉進來了!

0 意見:

張貼留言