热门问题
时间线
聊天
视角

版本控制軟件比較

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

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 related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads