Mercurial 是一個開源,免費,輕量級,快速,可移植且分佈式的源代碼管理(SCM)系統和版本控制系統,專門用於高效處理大型分佈式項目。
該軟件為用戶提供易於使用且直觀的命令行界面,目前廣泛用於需要可靠,分佈式和快速版本控制的項目,如OpenSolaris,MoinMoin或Xen。
它也很容易學習,它只是有效。項目的主頁上提供了兩個關於如何克隆項目和推送更改以及創建項目和提交的快速入門教程。
命令行選項
在其命令行選項中,如果執行‘ hg --help’可以一目了然地查看在終端模擬器/命令提示符中的命令,我們可以提到在下次提交時添加所選文件,添加所有新文件和刪除缺失文件的能力,查看每個文件的變更集信息,將存儲庫修訂壓縮為無版本存檔,應用一個或多個更改組文件,在分支之間複製更改或搜索更改集。
此外,您可以反轉上一個變更集的效果,創建書籤,列出現有書籤和存儲庫命名分支,列出跟踪文件,查看分支頭,導入一組有序的補丁,驗證存儲庫的完整性,搜索修訂版或指定文件中的模式,重命名文件,激活獨立Web服務器,更新工作目錄,在當前目錄中創建新存儲庫等等。
引擎蓋和支持的操作系統
Mercurial完全採用Python編程語言編寫,從頭開始設計為跨平台軟件,可在所有GNU / Linux發行版以及Microsoft Windows和Mac OS X操作系統上運行良好。目前支持32位和64位架構。
此版本中的新功能:
- demandimport :不要為fromlist中的未知項引發ImportError
- posix:make signal()在信號中斷時重啟(issue5452)
- hgweb:在rss樣式中添加缺少的斜杠到文件日誌URL
版本中的新功能:
- demandimport:不要為fromlist 中的未知項引發ImportError
- posix:make signal()在信號中斷時重啟(issue5452)
- hgweb:在rss樣式中添加缺少的斜杠到文件日誌URL
版本4.2.3中的新功能:
- demandimport:不要為未知項目引發ImportError fromlist裡
- posix:make signal()在信號中斷時重啟(issue5452)
- hgweb:在rss樣式中添加缺少的斜杠到文件日誌URL
版本4.2.2中的新功能:
- demandimport:不要為未知項目引發ImportError fromlist裡
- posix:make signal()在信號中斷時重啟(issue5452)
- hgweb:在rss樣式中添加缺少的斜杠到文件日誌URL
版本4.1.1中的新功能:
- demandimport:不要為未知項目引發ImportError fromlist裡
- posix:make signal()在信號中斷時重啟(issue5452)
- hgweb:在rss樣式中添加缺少的斜杠到文件日誌URL
版本4.0.2中的新功能:
- demandimport:不要為fromlist 中的未知項引發ImportError
- posix:make signal()在信號中斷時重啟(issue5452)
- hgweb:在rss樣式中添加缺少的斜杠到文件日誌URL
版本3.7.2中的
新功能:
- bundlerepo:正確處理filelog中的隱藏linkrev(issue4945)
- bundlerepo:正確處理manifestlog中的隱藏linkrev(issue4945)
- demandimport:添加_imp以忽略列表
- doc:關於手冊頁“hgrc.5”中的“hg purge”別名的正確例子
- doc:從命令幫助概要中刪除已棄用的選項
- fileset:修復複製/粘貼eol()錯誤消息
- help:修復backgroundclose文檔中的拼寫錯誤
- help:hg.intevation.de是hg.intevation.de(和新證書)的新主要名稱
- help:更新模板示例以使用reST文字語法
- hg:從池狀倉庫創建共享時獲取鎖定(issue5104)
- log:修復由多個OR選項(issue5100)過濾的修訂順序
- rebase:中止時更新工作目錄(issue5084)
- revert:在合併期間正確恢復為p2的祖先(issue5052)
- revset:flatten chained'list'操作(又名函數args)(issue5072)
- 設置:避免在setup.py --pure 中與hg.exe相關的過程
- ui:通過非交互式提示回顯用戶名 修復崩潰
- unionrepo:正確處理revlog中的隱藏linkrev(issue5070)
- zeroconf:轉發傳遞給ui.configitems()包裝器的所有參數
版本3.7.1中的
新功能:
- 修正:不保留大多數額外字段
- 移植:不保留大多數額外字段
- histedit:修復文檔中的拼寫錯誤
- osutil:在不支持的平台上禁用recvfds()的編譯
- osutil:不要因為libc沒有recvmsg()而中止加載純模塊
- rebase:backout changeset 986d04b9fedd
- rebase:backout changeset d755a9531fce
- rebase:不保留大多數額外字段
版本3.5.1中的新功能:
- 轉換:修復git副本文件內容轉換
- filesets:忽略大小的單位情況(單個值的謂詞)
- 幫助:修復錯誤熟人 - >熟悉
- help:修復腳本文檔中的拼寫錯誤
- hg:當克隆目的地是遠程時,避免自動共享
- hgweb:修復模板路徑(BC)的信任
- histedit:backout ebb5bb9bc32e
- largefiles:確保lfutil.getstandinmatcher()僅匹配standins
- 匹配:修復icasefs(issue4768) 上的僅大小寫重命名+顯式路徑提交
- 解析器:修復compute_phases_map_sets中的內存洩漏
- rebase:在完全rebase操作期間鎖定repo
- revset:在優化“和” 時防止由空組表達引起的崩潰
- revset:在優化“或” 時防止由空組表達引起的崩潰
- strip:在剝離期間使用'finally:tr.release'模式
- 更新:為整個'hg update'命令解鎖repo
- wix:使用'hg help -k foo' 避免中止
版本3.4.2中的新功能:
- changegroup:在changeggroupsubset(issue4736) 中正確計算公共基數
- crecord:修復了將crecord移動到核心時引入的拼寫錯誤
- crecord:修復了將crecord移動到核心時引入的三個拼寫錯誤
- hgwebdir:當設置'web.name'時,避免冗餘的repo和目錄條目
- hgwebdir:不允許subrepo的隱藏父級顯示為目錄
- 解析器:不要緩存RevlogError類型(issue4451)
- pull:使用'hg pull --rev name --update'避免競爭條件(issue4706)
- 模板:不要在“if”表達式(issue4714) 中預處理模板字符串
- templater:適當地評估傳遞給diff()的參數
- templater:將“...”解析為2.9.2-3.4兼容性(issue4733)的字符串
- 移植:只拉動移植的修訂版(issue4692)
版本3.4中的新功能:
- 命令:
- annotate:添加選項以註釋工作目錄文件
- 註釋:始終準備基礎fctx的祖先上下文(issue4600)
- 註釋:在走向父母之前總是調整linkrev(issue4623)
- annotate:準備workfilectx的祖先上下文
- 書籤:添加incoming()以替換傳入書籤的diff()
- 書籤:添加outgoing()以替換傳出書籤的diff()
- 書籤:在可用@number提高效率之前檢查@pathalias後綴
- 書籤:增強對顯示傳入/傳出書籤的詳細信息的測試
- 書籤:防止不同的書籤意外更新
- 書籤:重複@number書籤,如果它引用遠程引用的變更集
- 書籤:通過compare() 重寫比較commands.summary()中的書籤
- 書籤:顯示有關傳入/傳出書籤的詳細狀態
- clone:向硬鏈接克隆添加進度支持(issue3059)
- commands.import:接受前綴選項
- commands.push:當修訂評估為空集(BC) 時中止
- 命令:add ui.statuscopies config knob
- debuginstall:在搜索之前展開編輯器路徑(issue4380)
- 文件:將可重複使用的實現拆分為cmdutil以支持子補助
- 文件:使用ctx對象訪問dirstate
- 移植:允許創建兄弟移植物
- 移植:在附加物中記錄中間移植物
- log:將結束分支節點顯示為“_”(BC)
- log:fix --follow null parent不包含修訂版0
- log:make -fr顯示給定轉速的完整歷史記錄
- log:首選'wctx'而不是'pctx'來處理工作環境
- patch.internalpatch:接受前綴參數
- patch.internalpatch:為前綴 添加默認值
- patch:將pathtrip重命名為pathtransform
- pull:在訪問其他repo之前打印“從foo拉”
- 推送:如果預期“推遲”(BC)(issue4596),獲取本地'wlock'
- 解決:對-l / - list(BC) 的未知拍子的沉默警告
- revert:根據工作目錄評估文件集(issue4497)
- revert:fix --interactive on local modification(issue4576)
- revert:在交互式還原(issue4592) 後停止標記文件
- 還原:只接受沒有路徑的-I / -X或-a / -i(issue4592)
- revert:如果尺寸未更改,則在恢復的文件上應用normallookup(issue4583)
- 還原:恢復僅對僅重置案例進行還原的能力(issue4481)
- status:添加相對目錄幫助文本(issue3835)
- 核心:
- bundle2:捕獲事務回滾消息輸出(issue4614)
- bundle2:禁用輸出捕獲,除非我們使用http(issue4613 issue4615)
- changelog:如果不存在待處理數據,則修復readpending(issue4609)
- dirstate:修正初始化nf vs f 的順序
- filelog:允許刪失文件包含填充數據
- merge:在最後一次wlock發布後運行update hook
- pushkey:在運行pre-pushkey hook之前刷新掛起數據(issue4607)
- repoview:改進計算staticblockers perf
- revlog:_addrevision根據審查的修訂版創建完全替換的增量
- revlog:將“iscensored()”添加到revlog public API
- revlog:addgroup檢查傳入的增量是否添加了審查的轉速,設置標誌位
- revlog:在addgroup中,拒絕基於刪失節點的格式錯誤的增量
- revlog:在條帶 之後將內聯轉換為非行工作
- revlog:擴展交換所收到的全額替換增量的特例
- subrepo:不要寫帶空子狀態的.hgsubstate行(issue4622)
- subrepo:更新幫助文本以考慮diff -I / -X gitsubrepo support
- 標籤:建立單獨的共享緩存.hgtags filenodes
- 標籤:更改標籤緩存文件的格式
- 標籤:每個過濾級別都有不同的緩存文件
- ui:在普通模式下禁用revsetaliases(BC)
- util:向copyfiles添加進度回調支持
- windows:make shellquote()引用任何包含''(issue4629) 的路徑
- 擴展:
- 顏色:在Windows(BC)上設置ANSI模式更為保守
- 顏色:修復cmd.exe中的崩潰
- color:如果是非交互式的,則省略terminfo / win32警告(issue4543)
- color:當尋呼機處於活動狀態時支持不同的顏色模式
- 轉換:調整章魚合併的進度條(issue4169)
- histedit:在histedit中添加--edit-plan選項
- histedit:允許hetedit - 不在後代(BC)時繼續
- histedit:在hetedit期間修復防止條紋
- histedit:修復新錯誤消息的樣式
- histedit:使用fold 改進滾動動作集成
- histedit:修復匯總提示提交郵件(issue4606)
- largefiles:克隆到遠程倉庫時不會崩潰
- largefiles:修復日誌匹配器時不要破壞文件集
- largefiles:始終考慮updatelfiles'checked'parameter set
- largefiles:避免在overriderevert中無限遞歸調用openlfdirstate
- largefiles:不創建包含調用鏈
- largefiles:在記錄 時,不要使用'.hglf'為替換模式添加前綴
- largefiles:在還原遺忘的大文件時不要發出警告
- largefiles:在overriderevert() 中提取並重用'standin'變量
- largefiles:對於更新-C,僅在必要時更新大文件
- largefiles:處理來自repo外部的日誌記錄
- largefiles:介紹lfutil.findstorepath()
- largefiles:覆蓋cmdutil.revert()而不是comands.revert()
- largefiles:報告狀態-C 中復制/移動的大文件的來源
- largefiles:在需要克隆的 後,將擴展名設置為本地啟用
- largefiles:教日誌處理模式
- largefiles:update _subdirlfs()comment
- largefiles:使用通用函數構建.hg_archival.txt 的內容
- largefiles:驗證本地倉庫時使用lfutil.findstorepath()
- largefiles:使用核心文件複製邏輯來驗證目標路徑
- largefiles:使用共享源作為主要本地存儲(issue4471)
- mq:單個補丁不適用時避免靜默失敗(issue4604)
- rebase:不要將“source”參數轉發給rebase(issue4633)
- rebase:在中止時恢復書籤狀態
- 記錄:編輯新添加文件的補丁(issue4304)
- 記錄:修復在子目錄中添加帶有記錄的新文件(issue4626)
- 記錄:修復記錄,更改已移動的文件崩潰(issue4619)
- 擱置:以正確的順序獲得鎖定
- 擱置:添加交互模式
- 擱置:添加交互模式命令行選項
- hgweb:
- hgweb:diffline上的resurrect標籤,以monoblue風格修復渲染
- hgweb:使用introrev()查找父母(issue4506)
- json:實施{bookmarks}模板
- json:實現{分支}模板
- json:實現{changeset}模板
- json:實施{比較}模板
- json:實現{fileannotate}模板
- json:實現{filediff}模板
- json:實施{helptopics}模板
- json:實施{help} template
- json:實現{manifest}模板
- json:實現{shortlog}和{changelog} templates
- json:實施{tags} template
- 未排序:
- 存檔:將默認前綴更改為“無”
- 存檔:查找第一個可見的修訂版本以構建回購標識(issue4591)
- bundle2-localpeer:錯誤地正確傳播服務器輸出(issue4594)
- bundle2-wireproto:錯誤地正確傳播服務器輸出(issue4594)
- changeset_printer:顯示p1rev:帶有“+”後綴的p1node for workingctx
- check-commit:對錯誤的錯誤標記的檢測更加挑剔
- check-commit:檢查匯總行中的大小寫
- churn:棄用-t選項,轉而使用-T
- crecord:修復另一個下劃線
- crecord:修復orig_stdout 的下劃線樣式
- devel-warn:為所有消息添加前綴(“devel-warn:”)
- dirs._addpath:暴露後不要改變Python字符串(issue4589)
- dispatch:合併ParseErrors的格式
- 發送:為{file,rev}設置功能提供近編輯距離建議
- dispatch:提供類似命令的建議
- 擴展:支持另一個擴展加載後的回調
- get-with-headers:支持解析和漂亮打印JSON
- graphlog:不要繞過commands.log以便-fr工作
- graphlog:移動註釋和表示轉速的標記可能未排序
- graphlog:刪除getgraphlogrevs()過早返回空repo
- lazymanifest:在3d485727e45e之後修復lmiter_iterentriesnext()中的內存洩漏
- lazymanifest:修復純hg iterkeys()
- linkrev:修復工作副本註釋的問題
- manifestv2:添加對閱讀新清單格式的支持
- manifestv2:添加對編寫新清單格式的支持
- 過時:避免在分歧中阻礙週期的無限循環(issue4126)
- record:將交互選項添加到提交命令
- 記錄:允許編輯新文件(issue4304)
- record_curses:為新添加的文件修復ui bug
- revbranchcache:為緩存不可寫時添加測試
- revbranchcache:移出branchmap到localrepo
- revbranchcache:逐步填充緩存
- revbranchcache:在對像上存儲倉庫
- revbranchcache:即使在讀取操作期間寫入緩存
- revrange:不要將revset別名解析為哈希前綴(issue4553)
- rollback:clear resolve state(issue4593)
- ssl:在檢查Apple python可執行文件(issue4588)之前解析符號鏈接
- ssl:設置顯式符號“!”到web.cacerts以禁用SSL驗證(BC)
- strip:使用--keep(issue4593)正確清除解析狀態
- subrepo:為git subrepos添加'cat'支持
- subrepo:為文件命令 添加對hgsubrepo的基本支持
- subrepo:為diffing git subrepos添加包含/排除支持
- subrepo:為git subrepos中的被忽略和清除文件添加狀態支持
- subrepo:更改abstractsubrepo.init(API)的參數
- subrepos:支持在git subrepos中添加文件
- test-convert-git:用章魚合併顯示瘋狂進度條(issue4169)
- test-histedit-edit.t:在hetedit期間證明qnew失敗(issue4366)
- test-https:僅在使用Apple python時啟用dummycert測試(issue4500)
- test-shelve:對空白更寬容(issue4124)
- 測試:添加測試顯示標籤緩存drop filtered heads(issue4550)
- 測試:處理已刪除的.hg目錄(git 2.2.0及更高版本)(issue4585)
- trydiff:僅使用前綴加入文件名
- unbundle:處理bundle2(BC)(issue4596) 時獲取'wlock'
- webcommands:定義可用命令的字典
- webcommands:使用裝飾器定義web命令
- 顏色:在Windows(BC)上設置ANSI模式更為保守
- commands.push:當修訂評估為空集(BC) 時中止
- histedit:允許hetedit - 不在後代(BC)時繼續
- log:將結束分支節點顯示為“_”(BC)
- 推送:如果預期“推遲”(BC)(issue4596),獲取本地'wlock'
- 解決:對-l / - list(BC) 的未知拍子的沉默警告
- ssl:設置顯式符號“!”到web.cacerts以禁用SSL驗證(BC)
- unbundle:處理bundle2(BC)(issue4596) 時獲取'wlock'
- subrepo:更改abstractsubrepo.init(API)的參數
版本3.3.3中的新功能:
- adjustlinkrev:將'無'值設為源
- adjustlinkrev:僅為祖先準備一次源代碼轉換
- 修正:檢查兩個合併父項的目錄重命名(issue4516)
- annotate:調整linkrev(issue4532) 時重用祖先上下文
- dirstate:在icasefs上添加dirs時不需要確切的大小寫(issue4578)
- dirstate:確保rootdir以目錄分隔符(issue4557)結束
- filemerge:在mergemarkertemplate幫助中清理語言
- 忘記:清除icasefs 上不精確的大小寫匹配的輸出
- hgweb:阻止從指定路徑以外的目錄加載樣式映射
- mergecopies:遍歷文件歷史記錄時重用祖先上下文(issue4537)
- templates:修復默認樣式的“log -q”輸出
- templates:修復階段樣式的“log -q”輸出
- win32:'raise ctypes.WinError' - > 'raise ctypes.WinError()'
版本3.3中的新功能:
- 命令:
- 添加:即使不完全匹配(BC) ,也會添加忘記的文件
- addremove:添加回忘記的文件(BC)
- addremove:添加對-S標誌的支持
- addremove:使用-I / -X(BC) 調用時打印相對路徑
- addremove:在子目錄中支持帶有顯式路徑的addremove
- 退出:添加--commit選項
- commit:如果指定了--addremove,則中止,但失敗
- commit:當不在父級(issue4476) 時刪除反向搜索複製源
- commit:如果指定了-S,則傳播--addremove到subrepos(issue3759)
- graft:在移植時顯示更多有用的狀態信息
- 核心:
- bundles:不要覆蓋現有的備份包(BC)
- osx:pkg包中的補丁.pax.gz文件,以便以root身份提取(issue4081)
- revset:處理頭部缺失文件的隱藏linkrev(issue4490)
- revset:允許rev(-1)表示空修訂(BC)
- revset:修復祖先(null)以包含空修訂(issue4512)
- subrepo:當非hg subrepos存在時不要中止(issue4513)
- cmdserver:像其他命令一樣使用給定的流作為管道通道
- 擴展:僅檢查主要和次要版本(BC)的兼容性
- https:支持https網址(issue3090)的tls sni(服務器名稱指示)
- 忽略:解析相對於repo root的忽略文件(issue4473)(BC)
- linkrev:處理沒有可見子項的已過濾的linkrev(issue4307)
- linkrev:在bootstrapping annotate(issue4305) 時調整linkrev
- linkrev:調整linrev時使用正確的清單內容(issue4499)
- memctx:使用新刪除的文件正確計算清單(issue4470)
- memctx:修復已刪除文件的清單(issue4470)
- obsstore:在初始化期間禁用垃圾回收(issue4456)
- subrepo:支持使用subrepos中的顯式路徑刪除
- subrepo:為git subrepos添加完整的恢復支持
- subrepo:為git subrepos添加部分差異支持
- subrepo:為git subrepos中的被忽略文件添加狀態支持
- win32:從Inno Setup安裝程序中刪除Mercurial.ini文件(issue4435)
- hgweb:
- hgweb:允許查看針對p1或p2的差異以進行合併提交(issue3904)
- 擴展:
- color:添加對git subrepo diffs著色的支持
- color:在_effects 中添加缺少的'dim'
- 轉換:在svn失敗時,請注意libsvn版本(issue4043)
- convert:替換消息中的修訂引用(如果它們是> =短哈希 )
- convert:處理mercurial_source.lookuprev() 中的LookupError
- extdiff:重新引入與手動引用參數的向後兼容性
- histedit:添加測試以顯示issue4251已修復(issue4251)
- largefiles:修復沒有大文件更改的目錄的提交(issue4330)
- largefiles:使用'default'路徑來提取大文件,而不是'default-push'
- largefiles:啟用subrepo支持添加,忘記,刪除
- largefiles:顯示在外發更改集中檢查替換哈希時的進度
- mq:更簡單的處理普通標題
- patchbomb:不尊重空格和格式改變diffopts(BC)
- rebase:在重新定位時顯示更多有用的狀態信息
- rebase:確保rebase修訂仍然可見(issue4504)
- extdiff:避免外部工具的意外引用參數(issue4463)
- 突出顯示:忽略Unicode的額外換行符(issue4291)
- 記錄:不尊重格式更改diffopts(issue4459)
- 分享:添加共享書籤的選項
- 移植:正確跳過空變更集(issue4423)
版本3.2.4中的新功能:
- demandimport:blacklist distutils.msvc9compiler(issue4475)
- largefiles:backout f72d73937853 - 線性更新處理m - >一個不同的
- largefiles:使用'remove -A'(issue4053) 修復虛假的丟失文件警告
- largefiles:使用forget(issue4053) 修復虛假的丟失文件警告
- largefiles:介紹'composelargefilematcher()'方法
- largefiles:標記lfile,添加了替換時在lfdirstate中添加
- sshpeer:更徹底的shell引用
版本3.2.3中的新功能:
- context:停止為已修改或添加的節點設置“無”
- darwin:當normcase()文件路徑 時,省略可忽略的代碼點
- 編碼:添加hfsignoreclean以清除HFS忽略的字符
- largefiles:實際上並沒有在addremove幹運行中刪除大文件
- log:fix log -f實際遵循歷史記錄的慢速路徑
- log:fix log revset instability
- manifest:禁止將條目的節點ID設置為無
- pathauditor:檢查Windows短名稱別名
- pathauditor:檢查OS X上忽略的代碼點
- rebase:更新回原始wc parent 時忽略負面狀態
- 更新:為未跟踪的本地文件添加測試
- 更新:不要覆蓋更新 上未跟踪的忽略文件
版本3.2.2中的新功能:
- changegroup:在重新排序期間修復文件linkrevs(issue4462)
- hgweb:在未捕獲的異常後發送正確的HTTP響應
- largefiles:避免在不知道它的平台上進行執行檢查
- largefiles:如果一方未更改,則不顯示largefile / normal提示
- 清單:修復工作副本文件“添加”標記錯誤的錯誤
- 合併:準確地說明合併為什麼簡稱desc
- merge:在cd / dc提示符之前,檢查更改的一方是否真的改變了
- mq:修復以“錯誤”順序發生的標頭更新
- mq:介紹insertplainheader - 與之前相同的天真實現
- mq:在普通模式下添加標題時,將它們與消息(issue4453) 分開
- mq:在普通模式下設置消息時,將其與標題(issue4453) 分開
- push:停止在syncphase中獨立使用bundle2(issue4454)
- pushkey:正常處理prepushkey hook失敗(issue4455)
- 重命名:正確報告已刪除並添加了已修改的文件(issue4458)
- 還原:查找所有本地修改的副本信息
- revset:為generatorset修復第一個和最後一個(issue4465)
- 模板:修復損壞的“少”&紙張樣式中的“更多”鏈接(issue4460)
版本3.2.1中的新功能:
- 書籤:修復交換消息的格式(issue4439)
- changegroup:不在fnodes上存儲未使用的值(issue4443)
- 轉換:使用git diff-tree -Cn%代替--find-copies = n%for old git
- 發現:sample和yesno之間的索引必須匹配(issue4438)
- 發現:將'所有遠程已知的本地頭'限制為真正的'所有'(issue4438)
- extdiff:引用傳遞給shell的用戶提供的選項
- hgweb:使用web.archivesubrepos修復崩潰
- mail:實際使用的是verifycert配置值
- rebase:修復沒有共同祖先的rebase(issue4446)
- serve:--daemon-pipefds選項的正確元變量
- templater:不要覆蓋runsymbol()中的關鍵字映射(issue4362)
評論沒有發現