2013年1月24日 星期四

Source Code 版本管理

原始碼版本管理之心路歷程:

1. 人腦拷貝備份法: 剛開始寫程式時, 就是直接 copy 到軟碟片備份, 然後再看日期來區分, 因為常常在不同的電腦上寫, 有時會弄不清楚哪一版才是新的, 嚴格來說, 這不算是原始碼版本管理.

2. Source Safe: 進入軟體公司後, 就開始使用 Source Safe, 它和 Visual C++ 有完整的整合, 透過 checkin/checkout 與 server 連結, 管理檔案版本, 也可以分辨是何人所寫的程式碼, 但是它的版本編號以各個檔案為主, 因此使用 label 來註記專案版本.

3. Subversion (SVN): 以整個專案來編版本號碼, 因此只要號碼大的就是較新版, update/commit  與 server 連結, 以 branch 來分支專案. 再 merge 回主線; 不過因為歷程都記載于 server 上, 因此查看各版本時都需要連結 server, 如果 server 出問題就會失去修改的歷程. VisualSVN server, TortoiseSVN client, SmartSVN 是常用的 SVN 軟體. 

4. git: 它將歷程完整記錄在 local 端的電腦中, 再以 pull/push 與 server 連結, Xcode 內建支援, 是目前筆者最常用的, 也取代了 SVN

------------------------
SourceForge 提供了 server, 同時支援 SVN 與 git, 也可以設定帳號權限, 提供個人的原始碼管理使用, free.
github  git server, 個人使用要付費, public code is free.