系統基礎 對於體系結構、模型和示例的概述,什麼是軟件配置維護?在學校學習的首要工具中,通常不會 包含 SCM。軟件(或資源)控制,正如其名字所暗示的那樣,是一種工具和一種有關的流程,而這種流程被用於維護源代碼及其演進。SCM 提供的首要功用如下:
在存儲庫(repository)中維護一個文件。
在存儲庫中維護文件的修訂。
檢測源修改抵觸並為多個開發人員的環境提供兼並。
跟蹤變卦的發起方。
為了完成一致、可反復的構建提供文件(有關修訂)的配置維護。
SCM 的適用性
資源控制 首要是指源代碼和有關文件的控制,而資源維護 則可使用於任何類型的資源。包含超文本標志言語(HTML)和二進制圖像文件、普通文本文檔或其他任何文件的 Web 站點是 SCM 系統舉行修訂控制的對象。
所以,SCM 准許您控制存儲庫中的一組文件並跟蹤這些文件的修訂。其他開發人員修改了存儲庫中的這些文件後,SCM 會標識出這些變卦與您所做的變卦之間存在的抵觸,然後自動將其兼並或通知您存在抵觸。這個功用十分首要,由於它准許多個開發人員修正同一組文件。SCM 還能跟蹤出誰做了何種變卦。SCM 還准許您將文件按邏輯劃分為有關的文件組,比如組成軟件圖像或可執行文件的源文件。
SCM 的術語
在深化揣摩 SCM 體系構造的類型和詳細之前,先要熟識一下術語的意思。存儲庫 是文件存儲和維護的中心位置(有時又被稱為樹)。從存儲庫中取出文件放到本地系統的任務文件夾的流程被稱作簽出。假設變卦了本地文件而又想同步變卦存儲庫,就須要執行更新。假設要將變卦後的文件簽入到存儲庫,就需執行提交。假設所變卦的文件先前曾經被變卦並已由他人提交,則會發作兼並,標明兩組變卦集將會被兼並在一同。若由於變卦抵觸的原由不能兼並時,則必已發作了抵觸。在此情況下,提交被拒絕,並要求開發人員手工兼並變卦。當提交了變卦之後,就會創立此文件的一個新的修訂。
一個或多個開發人員能夠對主樹(存儲庫的現在頭)或位於主樹旁的單個的分支舉行操作。這就讓開發人員能夠操作分支而不會影響到主樹。當分支固定後,再將分支與主樹舉行兼並。
要標志源樹演進流程中的首要階段,能夠對一組文件修訂使用標簽。這會將這組文件組合成一個有用的集合(有時會用作針關於唯一構建的文件的一個揭曉)。體系構造
各種 SCM 間有許多的差異,其中有兩種最根本的區別很值得揣摩:
集中式存儲庫與散布式存儲庫
變卦集模型與快照模型
集中式存儲庫與散布式存儲庫
當今 SCM 體系構造的最為首要的差異之一是存儲庫是集中式的仍舊散布式(分散的)。現在最為罕見的體系構造是集中式存儲庫。這個星型 體系構造由中心的源存儲庫和任務於這個存儲庫的多個開發人員組成(參見圖 1)。開發人員從中心存儲庫簽出源代碼到本地的沙箱內,舉行變卦後,將它提交回中心存儲庫。其他開發人員就能夠再訪問這些變卦。
您能夠會問:“為啥不運用現有的 SCM 中的一種呢?” 問得很好。 Git 十分幽默,吸引著許多 Linux 內核黑客,所以它很能夠成為下一個主流的 SCM。Linus 將 Git 描畫為一個高速的目錄內容維護器,雖然它所做的任務不多但完成得十分高效。