就通常的概念來講,當次咱們修改並保存文件時,伴隨着文件內容的變化,這個文件就會產生一個新版本。
一樣對於一個文件夾來講,當文件夾裏的文件被修改時,這個文件夾也會產生一個新版本。網絡
做爲一個自認爲有良好保存習慣的我來講,若是我要修訂一個文檔的錯誤,我會習慣性每修改一處便保存一次。
當我修訂完畢的時候,就可能產生了數個版本(由於有多處錯誤)。要是我準備修訂文件夾裏的多個文檔,這個文件甚至會產生上百個版本。分佈式
明顯的,這樣的作法會佔用大量的硬盤空間。並且實時監控修改也會耗費必定的內存,可能會影響主系統的運行,從而影響效率。版本控制
最關鍵的是,大部分中間版本都是無保存意義的。例如,將「我是ABC」改爲「我是XYZ」。先刪除「ABC」,再輸入「XYZ」。我刪除「ABC」以後先保存了一次。最後就會產生「我是ABC」、「我是」和「我是XYZ」三個版本。明顯中間「我是」這個版本是無心義的。內存
因此我認爲懶惰型的版本控制系統更能適應各類規模的需求,而實時型則適合於一些須要嚴格控制版本或須要集中管理的狀況。文檔
「集中式」的主要概念就是在一個「中心」進行管理。在多人協做的狀況下,全部的版本都經過這個中心進行「保存、複製和合並」等控制。
集中式的優點在於容易管理。可是一旦這個「中心」掛掉,就會致使整個工做網絡的癱瘓。同步
針對這問題因而出現了「分佈式」,它的主要概念是人人都是「中心」。每人的電腦都擁有全部的版本。在原「中心」掛掉的狀況下, 每一個人均可以正常地工做。同時由於每臺電腦中的版本都是完整的,因此不經過原「中心」也能夠進行版本的同步,即電腦與電腦間直接交換版本。不用擔憂因「中心」掛掉而會停止全部工做。it
分佈式的最大優點在於能夠持續地工做,可是在較多人協做的狀況,效率可能比集中式更差。因此即便在分佈式環境下,也會在網絡設置一個「中心」用於交換版本。效率