2009年2月25日 星期三

version control

version control 何謂版本控管?


工作上因為需要進入狀況,所以用google爬了一天的文章


內容真的是超多,不過內容大同小異,所以隨時可以再用Google 爬"版本控制" "version control"


消化了一下,用自己的話說明的話,我會用5W來分析:


Why-->因為所有的CODE都會歷經 開發 修改 覆蓋 復原 保留 追蹤 等歷程,所以version control可以有"效率"的達成這樣的目的及需求,當然要用copy很多份+文件紀錄也是可以這樣做,不過多人同時工作時,就會發生問題囉


Who-->Version Control 向前銜接RD開發的Source Code,向後連接著Bug Tracker的Bug Fix,算是一個重要的中間樞紐也是一個重要需用心管理的系統


When-->Version Control透露著一個重要訊息 "較時",如同當兵時的對表要求一般 ,要有效追蹤任何一版本的 建立/釋放/修改 時間,所以身為一個project leader應該在project一開始時,就必須要求建立 version control 的概念(不一定用系統,不過為了管理及回遡應該要要求)


What-->目前市場上較多人使用的軟體分別為 ClearCase Perforce SVN(CVS,SVK) ,其中 Perforce 及 SVN 為後起之秀,前者為付費商業軟體(也可以個人免費使用,不過不能超過一定的人數License限制),後者為OpenSource是免費提供的好物。


Where-->大部分的架構都是 Server-Client 中央集中式的架構,其中Perforce可以運用Perforce Proxy的方式達成跨區域的資料連線(catch增加速度,節省頻寬),這也是CVS SVN運作上的天缺,所以就出現了可以離線作業的另一版SVK的誕生。


這篇是我看過最詳細說明版本控管"要求"的文章


http://www.gpo.gov/su_docs/fdlp/pubs/proceedings/05spring/cdqa/version_control_white_paper.pdf


Version Control 主要是可以做到


‧ Version - Unique manifestation of a publication.


‧ Version Control - Process of evaluating electronic publications against a set of standards that define GPO's version control policy.


‧ Version Trigger - Changes beyond an agreed upon threshold or tolerance that constitute a new version.


‧ Version Detection - Activity of inspecting a publication for changes and responding to a version trigger.


‧ Version Identifier - Information stored in the metadata about a publication that identifies the version of the publication.


‧ Version Crosswalk - Information stored in the metadata about a publication that provides permanent links to all other versions and metadata about the other versions.


英文不甚理解,沒關係,中文的有這兩篇完善的說明


http://blog.linux.org.tw/~jserv/archives/001148.html


http://opensource.csie.ncku.edu.tw/opensource/ossf1.pdf


CVS SVN 歷史


Walter F. Tichy 在 1982 年的時候撰寫了著名的 RCS ,讓每個使用者都能夠簡單地把自己的文件、檔案納入修訂版版管理系統;


而為了滿足多人共同工作的需求, 1992 年時 Brian Berliner 和 Jeff Polk 完成了 CVS ,目前仍是多數軟體專案的首選版本管理系統。


又過了 10 年,到了 2002 年的時候,為了解決 CVS 效能緩慢而又易損壞的缺點, CVS 的開發團隊在 Karl Fogel 的領導下,推出了 Subversion (svn) ;


2004 年 clkao 又寫出了 SVK ,讓使用者毋須仰賴網路連線,也能做到版本管理以及協同工作。


RCS ── CVS ── SVN ── SVK 可謂一脈道統,在各種作業系統上都能裝起來執行,而且免費!Free耶


發展到了 SVK 後更可謂兼容並蓄,不僅適合參與多人工作,也適合拿來自己一個人用;當妳要負責協商多人工作時,更是應該拿出來讓大家一起用。


俗話說「工欲善其事,必先利其器」,做任何事成功的秘訣,就在於隨時掌握工作中各個部分的進度與變革,並且隨時做好回溯舊有版本的準備。


還有這篇文章也很棒,值得一讀 http://huanlin.dyndns.org/techshare/articles/2004061302/svn_concept.htm

0 個意見:

張貼留言

訂閱 張貼留言 [Atom]

<< 首頁