版本控制系統

1、版本控制
    什麼是「版本控制」? 版本控制是一種記錄一個或若干文件內容變化,以便未來查閱特定版本修訂狀況的系統。若是你是位圖形或網頁設計師,可能會須要保存某一幅圖片或頁面佈局文件的全部修訂版本(這或許是你很是渴望擁有的功能),採用版本控制系統(VCS)是個明智的選擇。 有了它你就能夠將某個文件回溯到以前的狀態,甚至將整個項目都回退到過去某個時間點的狀態,你能夠比較文件的變化細節,查出最後是誰修改了哪一個地方,從而找出致使怪異問題出現的緣由,又是誰在什麼時候報告了某個功能缺陷等等。 使用版本控制系統一般還意味着,就算你亂來一氣把整個項目中的文件改的改刪的刪,你也照樣能夠輕鬆恢復到原先的樣子。 但額外增長的工做量卻微乎其微。還記得當年修改畢業論文時的保存方法嗎?有了版本控制,不再須要那麼麻煩了。

 

2、本地版本控制系統
    本地版本控制系統採用某種簡單的數據庫來記錄文件的歷次更新差別。此類系統就是複製整個項目目錄來保存不一樣的版本,並記錄每次更新的差別。

 

    其中最流行的一種叫作RCS,現今許多計算機系統上還可看到它的蹤跡。
3、集中化的版本控制系統
    如何讓不一樣系統上的開發者協同工做呢?集中化的版本控制系統( Centralized Version Control Systems,簡稱CVCS)便應運而生,諸如CVS、Subversion及Perforce等。這類系統都有一個單一的集中管理的服務器,保存全部文件的修訂版本,而協同工做的人們都經過客戶端連到這臺服務器,取出最新的文件或者提交更新。

 

    相比於老式的本地VCS來講,這種作法使得每一個人均可以必定程度上看到項目中其餘人在作什麼,而管理員也可以輕鬆掌控每一個開發者的權限。但這麼作的缺點是中央服務器的單點故障。若是宕機一小時,那麼在這一小時內,誰都沒法提交更新,也就沒法協同工做。 若是中心數據庫所在的磁盤發生損壞,又沒有作恰當備份,毫無疑問你將丟失全部數據——包括項目的整個變動歷史,只剩下人們在各自機器上保留的單獨快照。 本地版本控制系統也存在相似問題,只要整個項目的歷史記錄被保存在單一位置,就有丟失全部歷史更新記錄的風險。
4、分佈式版本控制系統
     分佈式版本控制系統(Distributed Version Control System,簡稱 DVCS)極好地解決了上述問題。 在這類系統中,像Git、Mercurial、Bazaar 以及 Darcs 等,客戶端並不僅提取最新版本的文件快照,而是把代碼倉庫完整地鏡像下來。 如此,任何一處協同工做用的服務器發生故障,過後均可以用任何一個鏡像出來的本地倉庫恢復。由於每一次的克隆操做,實際上都是一次對代碼倉庫的完整備份。

 

    此外,許多這類系統均可以指定和若干不一樣的遠端代碼倉庫進行交互。籍此,你就能夠在同一個項目中,分別和不一樣工做小組的人相互協做。 你能夠根據須要設定不一樣的協做流程,好比層次模型式的工做流,而這在之前的集中式系統中是沒法實現的。
相關文章
相關標籤/搜索