Git 2.38 源代碼控制發布

分散式原始碼控制系統 Git 2.38 已發布。 Git 是最受歡迎、可靠和高效能的版本控制系統之一,提供基於分支和合併的靈活的非線性開發工具。 為了確保歷史記錄的完整性和對追溯更改的抵抗力,在每次提交中都會使用整個先前歷史記錄的隱式哈希;還可以使用開發人員的數位簽名來驗證各個標籤和提交。

與先前版本相比,新版本包含 699 個變更,由 92 名開發人員參與準備,其中 24 名開發人員首次參與開發。 主要創新點:

  • 主要結構包括“標量”實用程序,由微軟開發用於管理大型儲存庫。 該實用程式最初是用 C# 編寫的,但 git 包含了用 C 編寫的修改版本。 新實用程式與 git 命令的不同之處在於,它預設啟用在使用非常大的儲存庫時影響效能的附加功能和設定。 例如,當使用標量時,它適用:
    • 部分克隆可用於儲存庫的不完整副本。
    • 用於追蹤檔案系統變更的內建機制 (FSMonitor),它允許您無需搜尋整個工作目錄。
    • 索引會覆蓋不同包檔案(多包)中的物件。
    • 帶有提交圖索引的提交圖文件,用於優化對提交資訊的存取。
    • 後台定期工作,在後台維護存儲庫的最佳結構,而不阻塞交互式會話(每小時執行一次工作,主動從遠程存儲庫下載新對象並使用提交圖更新文件,以及打包過程存儲庫每晚啟動)。
    • “sparseCheckoutCone”模式,限制部分克隆期間允許的模式。
  • 在「git rebase」命令中新增了 --update-refs 選項,以更新與正在移動的分支重疊的依賴分支,而不必手動簽出每個依賴分支以切換到所需的提交。
  • 使“git rm”指令與部分索引相容。
  • 改進了將檔案從具有“cone”模式下的部分索引的工作區移動到不具有此模式的外部作用域時“git mv AB”命令的行為。
  • 點陣圖檔案格式已針對大型儲存庫進行了最佳化 - 新增了一個可選索引表,其中包含選定提交及其偏移量的清單。
  • 「git merge-tree」指令實作了一種新模式,在該模式中,基於兩個指定的提交,計算出具有合併結果的樹,就好像這些提交的歷史被合併一樣。
  • 新增了「safe.barerepository」設定來控制在其他 git 儲存庫中託管裸儲存庫(不包含工作樹的儲存庫)的能力。 設定為「明確」時,將可使用僅位於頂級目錄中的裸儲存庫。 為了能夠將裸儲存庫放置在子目錄中,請使用「all」值。
  • 「git grep」命令新增了「-m」(「—max-count」)選項,該選項類似於GNU grep中的同名選項,允許您限制顯示的匹配項數量。
  • 「ls-files」指令實作「--format」選項來設定輸出欄位(例如,您可以啟用物件名稱、模式等的輸出)。
  • 在「git cat-file」中,當顯示物件的內容時,可以考慮郵件對應檔案中指定的作者電子郵件綁定。

來源: opennet.ru

添加評論