Mercurial 扩展

优质
小牛编辑
119浏览
2023-12-01

使用可选扩展增强Mercurial的功能。

1.简介

Mercurial旨在提供一个小巧,安全且易于使用的命令集,该命令集对于大多数用户来说足够强大。 Mercurial的高级用户可以使用Mercurial扩展。扩展允许将强大的新功能直接集成到Mercurial核心中。

注意:扩展功能可能不符合Mercurial常规安全性,可靠性和易用性标准。

hg help extensions ” 提供内置的扩展帮助信息。 要获得有关已启用扩展的帮助信息,请运行“ hg help <extension-name> ”。

需要注意的是Mercurial明确的提供一个稳定的API进行扩展开发, 所以只能由扩展程序的供应商或维护者去适应API的变化

2.启用扩展

要启用Mercurial自带的或Python搜索路径中的“foo”扩展,请在hgrc中为其创建一个条目,如下所示:

[extensions]
foo =

还可以指定扩展的完整路径(可以是.py文件或包含__init__.py的文件夹):

[extensions]
myfeature = ~/.hgext/myfeature.py

要获得Mercurial未自带的扩展程序,只需将其下载到文件系统中的任何位置即可。在上面的示例中,它被下载到〜/ .hgext /注意:在Windows上,如果路径引用目录,必须省略后斜杠。 参见issue4187

要禁用已经在hgrc中启用的扩展,在其前面加上!:

[extensions]
# disabling extension bar residing in /path/to/extension/bar.py
bar = !/path/to/extension/bar.py
# ditto, but no path was supplied for extension baz
baz = !

通常在同一配置文件中的配置扩展。

3.Mercurial自带的扩展程序

这些扩展由Mercurial项目维护,并与Mercurial一起分发。

扩展名称链接地址扩展描述
aclAclExtension使用控制列表管理对repo的部分的进行提交权限控制
blackboxBlackboxExtension将事件记录到.hg / blackbox.log以进行事后调试
bugzillaBugzillaExtension在变更集中引用错误ID时更新Bugzilla条目
censorCensorExtension擦除给定修订版本的文件内容
churnChurnExtension显示每位作者的mercurial操作的更改统计信息
clonebundlesClonebundlesExtension将预生成的bundle通告给种子克隆
colorColorExtensiondiff,status和qseries命令用不同颜色显示
convertConvertExtension将版本库从其他SCM转换为Mercurial
eolEolExtension在工作副本和版本库之间转换行符
extdiffExtdiffExtension使用外部程序比较更改
factotumFactotumExtension使用factotum进行HTTP身份验证
fsmonitorFsMonitorExtension将文件监控程序Watchman与Mercurial集成,以产生更快的状态结果。
gpgGpgExtension使用GPG签署变更集并检查签名
hgciaHgciaExtensionCIA发送通知
hgkHgkExtension基于gitk的图形版本库和历史记录浏览器
highlightHighlightExtension在hgweb中高亮语法显示文件修订版
histeditHisteditExtensiongit rebase --interactive的风格编辑,折叠,删除变更集
keywordKeywordExtension在跟踪文件中使用类似CVS中的关键字扩展功能
largefilesLargefilesExtension跟踪大型二进制文件(2.0中的新增功能)
mqMqExtensionMercurial Patch Queues - 将更改作为一系列补丁进行管理
notifyNotifyExtension将电子邮件发送到订阅的地址以通知版本库更改
pagerPagerExtension允许你选择分页器
patchbombPatchbombExtension将一组更改集作为一系列修补程序用电子邮件发送
purgePurgeExtension清除版本库中未被Mercurial跟踪的所有文件和目录
rebaseRebaseExtension将修订从一个点移动到另一个点
relinkRelinkExtension重新创建版本库克隆之间的硬链接
schemesSchemesExtension添加为url协议添加快捷方式
shareShareExtension在多个版本库之间共享版本库历史记录
shelveShelveExtension保存并恢复对工作目录的更改
stripStripExtension从历史中剥离变更集及其后代
transplantTransplantExtension挑拣,变基和变更改写
win32mbcsWin32mbcsExtension允许在Windows上使用shift_jis / big5文件名。
zeroconfZeroconfExtension通过zeroconf / bonjour公布与浏览版本库

4.第三方扩展

这些扩展与Mercurial一起分发。Mercurial项目不保证这些,也不维护和测试这些扩展。

4.1。分支和补丁管理

atticAtticExtension轻松处理各个补丁
bookbinderbookbinder使类似于功能分支书签的行为(不是标签)
boundmodeBoundModeExtension启用绑定模式(提交命令自动推送)
branchheadBranchHeadExtension显示工作目录或给定修订版本的分支头
ceditCeditExtension配置文件的命令行编辑器,以后无需再次手动编辑hgrc文件了
changelogChangelogExtension从更改日志条目自动生成提交消息
commitsCommitsExtension一次将修改后的文件作为多个更改集提交
committerCommitterExtension不是变更集的作者时,记录提交者。
collapseCollapseExtension将连续的变更集合并为一个
diff-in-diffsDiffInDiffsExtension添加一个新命令来创建两个差异之间的差异
easycommitEasycommitExtension用于提交更改的命令行GUI
easymergeEasymergeExtension用于合并的命令行GUI
editcommitmsgsEditcommitmsgsExtension一次性更改所有已应用的mq补丁的提交消息
evolveEvolveExtension使用二阶版本控制重写历史记录
exportfileshgexportfiles将修订版或修订版范围内更改的所有文件导出到目录。
foreignForeignExtension交互式注册或删除外部/未知文件
forestForestExtension使用快照支持线程管理一些merc​​urial库作为元信息库
flowFlowExtension支持广义的Driessen模型
hg-remotebrancheshg-remotebranches跟踪[paths]中每个条目的远程分支头,并将它们作为标记公开。
histpushHistpushExtension在本地记录哪些修订已被推送
importfsImportfsExtension将给定文件系统中的一组文件作为变更集导入Mercurial版本库
lighttagsLightTagsExtension使本地标记的行为类似于轻量级标记(通过克隆和拉取共享,而不是版本控制)
mboxMboxExtension从MQ中的unix邮箱导入补丁
mergediffMergediffExtension仅显示合并引入的更改
mergeutilMergeUtilExtension用于合并分支的实用工具
mqcollabMqCollabExtension与其他人合作时,管理多个并行队列中的补丁
mutable-branchesMutableBranches重命名命名分支
nearestNearestExtension显示给定变更集中最近的标记
localbranchLocalbranchExtension在工作目录中创建克隆
lockLockExtension锁定资源
patiencePatienceExtension使用Bram Cohen的耐心差异算法生成差异
pbranchPatchBranchExtension用于协作与长期补丁开发和维护
quiet-hg-branchquiet-hg-branch取消提示“你想添加书签吗?” ,当运行hg branch的时候
rebaseifRebaseIfExtension仅在没有冲突时才进行rebase的命令,否则进行合并
releaseReleaseExtension自动化处理发布管理(标签创建,存档,......)
remotenamesremotenames跟踪远程书签和分支
sendSendExtension自动发送包含远程缺少的变更集的捆绑包,如darcs发送
shared_mqSharedMQExtension允许共享版本库具有相同的MQ队列
syncSyncExtension单击即可执行提取,更新/合并
tasksTasksExtension将任务作为连续变更集的集合进行管理
versionsVersionsExtension显示Mercurial和所有已安装扩展的版本信息。

4.2。嵌套版本库(子版本库)

guestrepoGuestrepoExtension处理嵌套的版本库
hgmodHgModExtension另一种处理嵌套子版本库的方式
hgnestedHgNestedExtension管理嵌套版本库
hg-subtreeHgSubtree通过将子版本库存储在版本库中来处理子版本库的方法
multirepoMultirepoExtension允许命令同时影响多个版本库
onsubOnsubExtension在每个子版本库中递归执行命令

4.3。配置管理

configConfigExtensionCommandLine仅通过命令行管理配置文件
configConfigExtension通过对话框和命令行管理hgrc文件
configexpressConfigExpressExtension监视和强制客户端使用来自服务器的配置
dynamic_usernameDynamicUsernameExtension设置每个目录树的用户名。
projrcProjrcExtension从.hg / projrc解析项目特定的配置
rcpathRcpathExtension显示Mercurial配置文件路径和名称
reposettingsReposettingsExtension允许的版本库指定配置来自中央配置文件

4.4。身份验证,访问控制和日志记录

actionlogActionLogExtension提供钩子,旨在帮助跟踪多人有权更新的远程版本库状态
commitsigsCommitsigsExtension将GnuPG和OpenSSL签名直接嵌入到变更集中
defpasswdDefpasswdExtension自动提供从文件中读取的凭据(用户名/密码)。
excludechangesetsExcludeChangesetsExtension通过重新添加,将“坏”变更集排除在中央版本库之外
hgbanBanChangesetsExtension禁止将特定更改集在被剥离/删除后重新引入版本库。
hg-kerberoshg-kerberosHenrik Stuart的Kerberos身份验证扩展
hgssoauthenticationhgssoauthentication允许对使用NTLM或kerberos身份验证的Web服务器使用单点登录身份验证。
kerberosKerberosExtension通过HTTP支持进行Kerberos身份验证
keyringKeyringExtension在特定于操作系统的密钥环中安全地保存HTTP密码(Gnome Keyring,KWallet,OSXKeyChain,已加密文件)
nopushNoPushExtension禁止从预定义的本地版本库目录推送
pushlogMozillaPushlogExtension跟踪将内容推送到版本库的行为
serverlogServerlogExtension日志服务器端事件对系统管理员有用,可以诊断Mercurial正在执行的操作
sonichgSonicHgExtension记录pushlog数据,通过滑块查看pushlog&shortlog的web界面,pushlog的高级搜索,新文件日志页面,完整的并排差异,正则表达式过滤器,提交语法警告等等!

4.5。与其他版本管理工具的互操作

cvscommitCvscommitExtension将变更集推送到CVS
fastimportFastImportExtension阅读git“快速导入”流并将其转换为Mercurial版本库中的变更集
hg-gitHgGitGit服务器推送和拉出
hgsubversionHgSubversion使用Mercurial作为Subversion客户端
perfarcePerfarceExtension允许Hg从中拉出并推送到Perforce仓库

4.6。特定于托管服务

bitbucketizeBitBucketizeExtension从命令行创建,修改或删除BitBucket克隆
hg-githubHgGithubExtension允许将Bitbucket中的Mercurial版本库镜像到Github

4.7。特定于操作系统

tpagerTpagerExtension在Windows上具有颜色支持的Mercurial分页器
win32chcpWin32ChCpExtension将Windows控制台切换为Mercurial在输出中实际使用的编码。
win32lfnWin32LongFileNamesExtension允许在Windows上操作名称长度超过260个字符的文件。
wincolorWinColorExtension支持Windows控制台上着色显示。

4.8。未分类的扩展

activityActivityExtension创建表示版本库活动的图像
all_dirsAllDirsExtension在目录树的所有版本库中执行相同的Mercurial命令。
allpathsAllPathsExtension运行push on multiple paths 等命令
artemisArtemisExtension简单轻巧的问题跟踪器
automvAutomvExtension自动检测文件重命名
autopagerAutopagerExtension输出超过一个屏幕时调用寻呼机
bbExtension分布式bug跟踪系统基于断轻量级任务管理器ŧ
bfilesBfilesExtension处理大型二进制文件
bigfilesBigfilesExtension支持hg repo外存储的大文件版本
buglinkBugLinkExtension允许链接变更集和问题ID
bugtrackerBugtrackerExtensionMercurial的一个微小的分布式错误追踪扩展
bundlecloneBundleCloneExtension使用预生成的包进行克隆
casefoldCaseFoldExtension成功解开案件折叠冲突
caseguardCaseGuardExtension如果可能导致CaseFolding冲突,则阻止用户将文件添加到版本库
casestopCasestopExtension在提交时停止大小写折叠冲突
chartChartExtension显示活动图表(另请参阅ActivityExtensionChurnExtension
checkfilesCheckFilesExtension提交钩子和命令以检查并修复选项卡和尾随空格
checkmetaCheckMetaExtension强制执行可配置的文件特征,如文件编码。
cifilesCifilesExtension打印所有签入文件的名称
clocClocExtension计算源代码行
codesmellCodesmellExtension在提出“臭臭”变化之前询问
containsContainsExtension测试分支中是否包含changset
crecordCrecordExtension以图形方式选择要提交的文件/块/行
cutehgCuteHgExtension用于mercurial命令的一组易于安装和使用的对话框
depsDepsExtension创建和管理版本化的版本库依赖项
digestDigestExtension为传出/捆绑创建和使用小摘要文件
dotlogDotLogExtension然而另一个DOT画家
dynapathdynapath动态重写路径以使用基于当前本地IP的本地镜像。
excludeExcludeExtension默认情况下排除某些已修改的文件(例如,始终修改的配置文件)
filereviewFileReviewExtension使用mercurial对任何项目执行代码审查
fixcaseFixcaseExtension修复外部工具更改文件名大小写的问题
fixrenamesFixrenamesExtension重播旧历史记录以添加重命名信息
fixutf8FixUtf8Extension修复带有文件名的非utf8系统的问题(Windows从不支持utf8文件名)
ftpFTPExtension管理FTP服务器上传的快照
graphvizGraphvizExtension生成DOT语言源以可视化变更集树
groupGroupExtension允许直观地重新组合一组更改集
grepfileGrepfileExtension搜索文件以获取正则表达式
hgbbBitbucketExtension使用bitbucket.org版本库的几个助手
hgexternalsHgExternals将外部版本库拖入Mercurial版本库
hgext.markdownMarkdownExtensionhgweb的Markdown扩展
hgflowdockFlowdockExtension发送通知给flowdock.com
hglisthglistMercurial 的ls命令
hglock-leHgLockLEExtension允许用户在一个本地版本库中进行并行文件修改时相互通知
hgopenurlHgOpenURLExtension在浏览器中快速显示版本库URL
hgreviewHgReviewExtension上传/刷新并从rietveld codereview实例中获取补丁
hgsftphgsftp在SFTP上使用Mercurial
hgsiteHgSiteExtension直接从Mercurial版本库中提供网站
hgsqlhgsqlExtension通过使用MySQL后端允许服务器多主机。
hgviewhgview用于可视化导航版本库历史记录和比较多个修订版的工具
hg-textauthhg-textauth明文文件验证
hgtracHgTracExtensionMercurial / Trac集成挂钩(Trac / Mercurial的前/后挂钩)
hgwebcachingproxyhgwebcachingproxy缓存hgweb代理,缓存并在本地提供拉取请求,分配负载并提供良好的带宽利用率。
hgxmppHgJabberExtensionMercurial Jabber Notification Hook(Jabber / Mercurial的前/后挂钩)
hotfilesHotFilesExtension指定最容易包含问题的文件
infoInfoExtension显示有关版本库的基本信息
infocalypseInfocalypse通过Freenet高效,分散,匿名和加密共享代码
killbomKillBomExtension在提交之前从具有指定编码的文件中删除BOM(字节顺序标记)字符
makewritableMakewritableExtension以交互方式从文件中删除只读标志
moinportMoinportExtensionMoinMoin Wiki 获取更改
narrowhgnarrowhg仅下载部分历史记录,请参阅NarrowClonePlan
packmercurial-pack-extension打包给定修订中涉及的所有文件(如果您的客户不知道diff文件是什么)
path_patternPathPatternExtension在.hgrc中全局定义[路径],并让它们知道您的所有版本库。
pastePasteExtension将更改粘贴到pastebin
pastebinPastebinExtension将更改粘贴到公共和私有粘贴代码
promptPromptExtension将有关当前版本库的信息放入shell提示符中
publishallPublishAllExtension发布到您的所有集合版本库(即:路径)
punchcardPunchcardExtension生成您的提交习惯的“穿孔卡”图
reviewboardReviewboardExtension将更改集发布到Review Board服务器以供审阅
qctQctExtension提供对Qct提交工具的访问
qtimesQtimesExtension保存或恢复受修补程序队列影响的文件的修改时间
qupQupExtension将MQ补丁移动到未应用的系列部分的顶部
rdiffRdiffExtension允许diff对远程版本库起作用
remotefilelogRemotefilelogExtension允许克隆在服务器上保留大部分文件历史记录。
reviewassiatantCodeReviewExtension代码审查工具可帮助您创建审阅请求并在不离开Visual Studio的情况下对其进行响应
rsyncRemoteSyncExtension使您的工作目录与版本库外部的远程文件保持同步
rupdateRemoteUpdateExtension如果通过ssh托管远程版本库,请将远程版本库更新为指定的修订
snapSnapExtension存储在Mercurial版本库之外的版本(大)文件快照
socks_proxysocks_proxySOCKS代理支持
softrebaseSoftRebaseExtension将可能复杂的rebase调用转换为多个更简单的调用
spellcheckSpellcheckExtension以交互方式纠正提交消息中的拼写错误; 还包括一个钩子,用于拒绝其提交消息中存在拼写错误的变更集
subpathsSubpathsExtension使用中央文件管理子路径重映射,分布在克隆和拉取
talariaTalariaExtension管理HTML文档的简单分层树,例如网站,文档等
terse-statusterse-status制作' hg status '节目?foo /foo中的所有文件都未跟踪时
textfulTextfulExtension显示时将二进制文件转换为文本或处理字符编码
tfsTfsExtension在变更集中引用错误ID时更新Team Foundation Server工作项
timestampTimestampExtension保存并恢复文件时间戳
timestamp_modTimestampModExtension自动保存和恢复版本库中所有文件的文件时间戳。
timetrackertimetracker跟踪项目花费的时间
untouchUntouchExtension保存或恢复文件的修改时间
update_versionUpdateVersionExtension标记时自动更新代码中的版本号。
webuserdirWebUserDirExtensionhgwebdir上的/ ~username /下的主机用户版本库
zipdocZipdocExtension版本控制压缩文档格式(如docx或odt)作为未压缩的zip压缩文件以改进增量压缩。

参见

有关创建新扩展的信息, 请参阅编写扩展扩展发布

扩展开发用于有关扩展的核心开发人员信息