热门问题
时间线
聊天
视角

版本控制軟體比較

維基媒體列表條目 来自维基百科,自由的百科全书

Remove ads

以下是版本控制軟體比較。下表包括知名的版本控制軟體組態管理(SCM)軟體的一般資訊和技術資訊。對不適用原始碼的SCM軟體,見開源組態管理軟體比較英語Comparison of open-source configuration management software

一般資訊

表格說明

  • 庫模式表示原始碼庫各個副本之間的關係。在一個主從式架構中,使用者通過客戶端訪問總庫;一般而言,他們本地機器只儲存專案樹的一個工作副本。工作副本的變化必須提交到總庫之後才能反映給其他使用者。而在分散式架構中,庫之間是平等的,使用者一般除了他們的工作副本之外,還有本地庫來存放版本歷史。
  • 併發模式表示如何管理工作副本的變化,以防止同時編輯造成庫中的資料混亂。在鎖定模式下,只有使用者從總庫請求並得到了一個檔案的排他鎖,才允許改變檔案。在合併模式下,使用者可以自由編輯檔案,但當他們提交變化到總庫時會被告知可能存在衝突,隨後版本控制系統可能會對雙方合併這些變化,或者當發生衝突時讓使用者來決定。注意,分散式版本控制幾乎都是合併的併發模式。
更多資訊 軟體, 維護者 ...
Remove ads

技術資訊

表格說明

  • 軟體:應用的名稱。
  • 程式語言:程式語言中的應用正在發展
  • 儲存方法:表示檔案在庫中儲存的形式。快照表示提交的檔案被整個儲存——通常是壓縮的。變化集表示提交的檔案只儲存它與前後版本的區別。
  • 變化範圍:表示記錄的變化是針對單獨的檔案,還是整個目錄
  • 版本ID:用來在庫中標識檔案的特定版本。系統可以使用偽隨機識別碼、版本的內容雜湊值或帶有版本序列號(命名空間)的檔名。而Integrated Difference的版本號則基於變化集自身,它可以表示多個檔案的變化。
  • 網路協定:同步變化時所使用的協定列表。
  • 原始碼規模:原始碼的大小以兆(megabyte)為單位。
更多資訊 軟體, 程式語言 ...
Remove ads

功能

表格說明

  • 軟體:應用的名稱。
  • 原子提交:保證所有的改變都提交成功或者都不成功。
  • 檔案重新命名:表示系統是否允許檔案在改名後仍然保留他們的版本歷史。
  • 合併檔案重新命名:表示系統是否能夠將一個分支上的檔案變化合併到另一個分支上已重新命名的同一個檔案上(或者相反)。 如果同一個檔案在兩個分支上都已經重新命名,則產生重新命名衝突,必須由使用者來解決。
  • 符號連結:表示一個系統是否允許象普通檔案一樣對符號連結進行版本控制。 對符號連結的版本控制,某些人認為是一項功能,而另一些人則認為存在安全隱患(例如,一個到/etc/passwd的符號連結)。符號連結只支援特定的平台,這取決於軟體的實現。
  • 前/後事件觸發:表示有能力在一個動作之前或之後觸發命令,例如發生一個提交的動作。
  • 簽章版本:指整合了版本的數位簽章,例如以OpenPGP的格式。
  • 合併跟蹤:表示一個系統是否記得在哪些版本之間合併了哪些變化,並且只合併那些從一個分支合併到另一個分支時遺失的變化。
  • 換行轉換:表示一個系統是否能適配文字檔案的換行符,從而匹配當前使用的作業系統的換行方式。控制變化的粒度,例如 Subversion,可以進行組態,依據檔案類型來處理換行符的不同,而Perforce根據一個單一、每個客戶端的組態轉換所有的文字檔案。
  • 標籤:表示是否可以給一個特定版本賦予一個帶有含意的名字,無論這些名字被叫做標記還是標籤。
  • 國際化支援:表示該軟體是否支援多語言環境和多作業系統。
  • Unicode檔名支援:表示該軟體是否支援使用不同[[字符编码]]的檔案系統之間的互操作。
  • 大庫支援:系統能高效處理十億位元組左右或更大的庫嗎?
更多資訊 軟體, 原子提交 ...
Remove ads

進階功能

表格說明

  • 關鍵詞擴充:支援關鍵詞自動擴充,例如檔案版本號。
  • 互動式提交:互動式提交允許使用者對變化精挑細選,並決定哪些變化可以提交(未被選擇的變化只被保留為工作副本的變化),而不是只到檔案級別的粒度。
  • 外部參照:在原始碼樹中嵌入外部庫。
  • 部分檢出/複製:從庫中只檢出或複製特定子目錄的能力。
  • 權限位:在版本歷史中跟蹤檔案權限位。
  • 保留時間戳:對於檔案系統屬性中的最後修改時間,以提交時間覆蓋檢出時間。
  • 使用者自動合併工具:自動合併可以嘗試通過使用者選擇的任何工具來進行(希望能以每個檔案為基礎來組態)。
  • 支援的格式:支援讀/寫,或者唯讀(轉換,有可能再重複)。
  • 共享所得目標的構建快取:通過這一能力,如果其他協同運作使用者恰好共享了同樣的依賴,可以引入其他使用者構建的所得目標,而無需在本地重建它們。
更多資訊 軟體, 關鍵詞擴充 ...
Remove ads

基本命令

表格說明

  • 綠格中不在[方括號]里的命令使用了互動式的命令列提示符。[方括號]中的文字用來解釋哪裡能找到等價功能。
  • 庫初始化:建立一個新的空庫(比如,版本控制資料庫)。
  • 克隆:建立一個完全相同的庫實例(在一個安全事務中)。
  • :將版本從遠端庫下載到本地庫。
  • :將版本從本地庫上傳到遠端庫。
  • 本地分支:建立一個不存在於原始遠端庫中的本地分支。
  • 檢出:從(遠端)庫建立一個本地工作副本。
  • 更新:用庫中的最新版本更新工作副本中的檔案。
  • 鎖定:鎖定庫中的檔案,以免被其他使用者更改。
  • 添加:標記指定的檔案,以便在下一次提交時添加到庫中。
  • 移除:標記指定的檔案,以便在下一次提交時移除(註:儲存在移除時及之前的相關版本歷史)。
  • 移動:標記指定的檔案,以便在下一次提交時移動到新的位置。
  • 拷貝:標記指定的檔案,以便在下一次提交時拷貝。
  • 合併:融合同一個工作副本路徑的兩個來源之間的差別。
  • 提交:將變化記錄到庫中。
  • 恢復:從庫中恢復工作副本檔案。
  • 生成打包檔案:建立一個包含壓縮的對給定庫的變化集的檔案。
  • 重定位:將本地提交重定位到已更新的上游位址。
更多資訊 軟體, 庫初始化 ...
Remove ads

進階命令

表格說明

  • 綠格中不在[方括號]里的命令使用了互動式的命令列提示符。[方括號]中的文字用來解釋哪裡能找到等價功能。
  • 命令別名:為指定的命令或組合建立客製化的別名
  • 鎖定/解鎖:排他性地鎖定一個檔案,以防被其他人編輯。
  • 擱置/取消擱置:在工作目錄中暫時擱置部分或全部的變化。
  • 轉返:從歷史中移除一個版本。
  • 挑選:只把某些修訂從一個分支移動到另一個分支(而不是合併分支)。
  • 二分檢索:在原始碼歷史中,使用二分檢索來尋找一個變化的引入或修復。
  • 出入:查詢本地庫和遠端庫之間的差別(該差別可能會以推/拉的方式傳送/取回)。
  • 過濾:在庫中搜尋,以找到那些匹配一個模式的行。
  • 記錄:在一次提交中只包含一個檔案的某些變化,而不包含其它的變化。
更多資訊 軟體, 命令別名 ...
Remove ads

使用者介面

表格說明

  • 軟體:應用的名稱。
  • 網頁版介面:表示應用軟體是否包含一個網頁版介面。網頁版介面可以允許軟體傳送診斷資料到一個網站,甚至能允許對應用軟體進行遠端控制。
  • 圖形介面:GUI,圖形化使用者介面。 如果一個軟體產品提供了GUI,它的功能可以通過應用程式窗口來訪問,而不是只能通過象DOS介面一樣在命令提示符後面敲入命令來訪問。
  • 外掛程式:功能通過整合式開發環境來實現。 最低的功能應該是,列出檔案的版本狀態,及檢入/檢出檔案。
更多資訊 軟體, 網頁版介面 ...
Remove ads

歷史及使用者

表格說明

  • 軟體:應用的名稱。
  • 歷史:簡短地講述軟體的起源好發展。
  • 知名使用者:使用該軟體作為主要版本控制系統的知名工程列表,不包括該軟體自己。如果它有一個完整的列表,後邊會列出該列表的連結。
更多資訊 軟體, 歷史 ...
Remove ads

參見

注釋

Loading content...

參考文獻

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads