Mercurial 扩展
优质
小牛编辑
132浏览
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一起分发。
扩展名称 | 链接地址 | 扩展描述 |
---|---|---|
acl | AclExtension | 使用控制列表管理对repo的部分的进行提交权限控制 |
blackbox | BlackboxExtension | 将事件记录到.hg / blackbox.log以进行事后调试 |
bugzilla | BugzillaExtension | 在变更集中引用错误ID时更新Bugzilla条目 |
censor | CensorExtension | 擦除给定修订版本的文件内容 |
churn | ChurnExtension | 显示每位作者的mercurial操作的更改统计信息 |
clonebundles | ClonebundlesExtension | 将预生成的bundle通告给种子克隆 |
color | ColorExtension | diff,status和qseries命令用不同颜色显示 |
convert | ConvertExtension | 将版本库从其他SCM转换为Mercurial |
eol | EolExtension | 在工作副本和版本库之间转换行符 |
extdiff | ExtdiffExtension | 使用外部程序比较更改 |
factotum | FactotumExtension | 使用factotum进行HTTP身份验证 |
fsmonitor | FsMonitorExtension | 将文件监控程序Watchman与Mercurial集成,以产生更快的状态结果。 |
gpg | GpgExtension | 使用GPG签署变更集并检查签名 |
hgcia | HgciaExtension | 向CIA发送通知 |
hgk | HgkExtension | 基于gitk的图形版本库和历史记录浏览器 |
highlight | HighlightExtension | 在hgweb中高亮语法显示文件修订版 |
histedit | HisteditExtension | 以git rebase --interactive的风格编辑,折叠,删除变更集 |
keyword | KeywordExtension | 在跟踪文件中使用类似CVS中的关键字扩展功能 |
largefiles | LargefilesExtension | 跟踪大型二进制文件(2.0中的新增功能) |
mq | MqExtension | Mercurial Patch Queues - 将更改作为一系列补丁进行管理 |
notify | NotifyExtension | 将电子邮件发送到订阅的地址以通知版本库更改 |
pager | PagerExtension | 允许你选择分页器 |
patchbomb | PatchbombExtension | 将一组更改集作为一系列修补程序用电子邮件发送 |
purge | PurgeExtension | 清除版本库中未被Mercurial跟踪的所有文件和目录 |
rebase | RebaseExtension | 将修订从一个点移动到另一个点 |
relink | RelinkExtension | 重新创建版本库克隆之间的硬链接 |
schemes | SchemesExtension | 添加为url协议添加快捷方式 |
share | ShareExtension | 在多个版本库之间共享版本库历史记录 |
shelve | ShelveExtension | 保存并恢复对工作目录的更改 |
strip | StripExtension | 从历史中剥离变更集及其后代 |
transplant | TransplantExtension | 挑拣,变基和变更改写 |
win32mbcs | Win32mbcsExtension | 允许在Windows上使用shift_jis / big5文件名。 |
zeroconf | ZeroconfExtension | 通过zeroconf / bonjour公布与浏览版本库 |
4.第三方扩展
这些扩展不与Mercurial一起分发。Mercurial项目不保证这些,也不维护和测试这些扩展。
4.1。分支和补丁管理
attic | AtticExtension | 轻松处理各个补丁 |
bookbinder | bookbinder | 使类似于功能分支书签的行为(不是标签) |
boundmode | BoundModeExtension | 启用绑定模式(提交命令自动推送) |
branchhead | BranchHeadExtension | 显示工作目录或给定修订版本的分支头 |
cedit | CeditExtension | 配置文件的命令行编辑器,以后无需再次手动编辑hgrc文件了 |
changelog | ChangelogExtension | 从更改日志条目自动生成提交消息 |
commits | CommitsExtension | 一次将修改后的文件作为多个更改集提交 |
committer | CommitterExtension | 不是变更集的作者时,记录提交者。 |
collapse | CollapseExtension | 将连续的变更集合并为一个 |
diff-in-diffs | DiffInDiffsExtension | 添加一个新命令来创建两个差异之间的差异 |
easycommit | EasycommitExtension | 用于提交更改的命令行GUI |
easymerge | EasymergeExtension | 用于合并的命令行GUI |
editcommitmsgs | EditcommitmsgsExtension | 一次性更改所有已应用的mq补丁的提交消息 |
evolve | EvolveExtension | 使用二阶版本控制重写历史记录 |
exportfiles | hgexportfiles | 将修订版或修订版范围内更改的所有文件导出到目录。 |
foreign | ForeignExtension | 交互式注册或删除外部/未知文件 |
forest | ForestExtension | 使用快照支持线程管理一些mercurial库作为元信息库 |
flow | FlowExtension | 支持广义的Driessen模型 |
hg-remotebranches | hg-remotebranches | 跟踪[paths]中每个条目的远程分支头,并将它们作为标记公开。 |
histpush | HistpushExtension | 在本地记录哪些修订已被推送 |
importfs | ImportfsExtension | 将给定文件系统中的一组文件作为变更集导入Mercurial版本库 |
lighttags | LightTagsExtension | 使本地标记的行为类似于轻量级标记(通过克隆和拉取共享,而不是版本控制) |
mbox | MboxExtension | 从MQ中的unix邮箱导入补丁 |
mergediff | MergediffExtension | 仅显示合并引入的更改 |
mergeutil | MergeUtilExtension | 用于合并分支的实用工具 |
mqcollab | MqCollabExtension | 与其他人合作时,管理多个并行队列中的补丁 |
mutable-branches | MutableBranches | 重命名命名分支 |
nearest | NearestExtension | 显示给定变更集中最近的标记 |
localbranch | LocalbranchExtension | 在工作目录中创建克隆 |
lock | LockExtension | 锁定资源 |
patience | PatienceExtension | 使用Bram Cohen的耐心差异算法生成差异 |
pbranch | PatchBranchExtension | 用于协作与长期补丁开发和维护 |
quiet-hg-branch | quiet-hg-branch | 取消提示“你想添加书签吗?” ,当运行hg branch的时候 |
rebaseif | RebaseIfExtension | 仅在没有冲突时才进行rebase的命令,否则进行合并 |
release | ReleaseExtension | 自动化处理发布管理(标签创建,存档,......) |
remotenames | remotenames | 跟踪远程书签和分支 |
send | SendExtension | 自动发送包含远程缺少的变更集的捆绑包,如darcs发送 |
shared_mq | SharedMQExtension | 允许共享版本库具有相同的MQ队列 |
sync | SyncExtension | 单击即可执行提取,更新/合并 |
tasks | TasksExtension | 将任务作为连续变更集的集合进行管理 |
versions | VersionsExtension | 显示Mercurial和所有已安装扩展的版本信息。 |
4.2。嵌套版本库(子版本库)
guestrepo | GuestrepoExtension | 处理嵌套的版本库 |
hgmod | HgModExtension | 另一种处理嵌套子版本库的方式 |
hgnested | HgNestedExtension | 管理嵌套版本库 |
hg-subtree | HgSubtree | 通过将子版本库存储在版本库中来处理子版本库的方法 |
multirepo | MultirepoExtension | 允许命令同时影响多个版本库 |
onsub | OnsubExtension | 在每个子版本库中递归执行命令 |
4.3。配置管理
config | ConfigExtensionCommandLine | 仅通过命令行管理配置文件 |
config | ConfigExtension | 通过对话框和命令行管理hgrc文件 |
configexpress | ConfigExpressExtension | 监视和强制客户端使用来自服务器的配置 |
dynamic_username | DynamicUsernameExtension | 设置每个目录树的用户名。 |
projrc | ProjrcExtension | 从.hg / projrc解析项目特定的配置 |
rcpath | RcpathExtension | 显示Mercurial配置文件路径和名称 |
reposettings | ReposettingsExtension | 允许的版本库指定配置来自中央配置文件 |
4.4。身份验证,访问控制和日志记录
actionlog | ActionLogExtension | 提供钩子,旨在帮助跟踪多人有权更新的远程版本库状态 |
commitsigs | CommitsigsExtension | 将GnuPG和OpenSSL签名直接嵌入到变更集中 |
defpasswd | DefpasswdExtension | 自动提供从文件中读取的凭据(用户名/密码)。 |
excludechangesets | ExcludeChangesetsExtension | 通过重新添加,将“坏”变更集排除在中央版本库之外 |
hgban | BanChangesetsExtension | 禁止将特定更改集在被剥离/删除后重新引入版本库。 |
hg-kerberos | hg-kerberos | Henrik Stuart的Kerberos身份验证扩展 |
hgssoauthentication | hgssoauthentication | 允许对使用NTLM或kerberos身份验证的Web服务器使用单点登录身份验证。 |
kerberos | KerberosExtension | 通过HTTP支持进行Kerberos身份验证 |
keyring | KeyringExtension | 在特定于操作系统的密钥环中安全地保存HTTP密码(Gnome Keyring,KWallet,OSXKeyChain,已加密文件) |
nopush | NoPushExtension | 禁止从预定义的本地版本库目录推送 |
pushlog | MozillaPushlogExtension | 跟踪将内容推送到版本库的行为 |
serverlog | ServerlogExtension | 日志服务器端事件对系统管理员有用,可以诊断Mercurial正在执行的操作 |
sonichg | SonicHgExtension | 记录pushlog数据,通过滑块查看pushlog&shortlog的web界面,pushlog的高级搜索,新文件日志页面,完整的并排差异,正则表达式过滤器,提交语法警告等等! |
4.5。与其他版本管理工具的互操作
cvscommit | CvscommitExtension | 将变更集推送到CVS |
fastimport | FastImportExtension | 阅读git“快速导入”流并将其转换为Mercurial版本库中的变更集 |
hg-git | HgGit | 从Git服务器推送和拉出 |
hgsubversion | HgSubversion | 使用Mercurial作为Subversion客户端 |
perfarce | PerfarceExtension | 允许Hg从中拉出并推送到Perforce仓库 |
4.6。特定于托管服务
bitbucketize | BitBucketizeExtension | 从命令行创建,修改或删除BitBucket克隆 |
hg-github | HgGithubExtension | 允许将Bitbucket中的Mercurial版本库镜像到Github |
4.7。特定于操作系统
tpager | TpagerExtension | 在Windows上具有颜色支持的Mercurial分页器 |
win32chcp | Win32ChCpExtension | 将Windows控制台切换为Mercurial在输出中实际使用的编码。 |
win32lfn | Win32LongFileNamesExtension | 允许在Windows上操作名称长度超过260个字符的文件。 |
wincolor | WinColorExtension | 支持Windows控制台上着色显示。 |
4.8。未分类的扩展
activity | ActivityExtension | 创建表示版本库活动的图像 |
all_dirs | AllDirsExtension | 在目录树的所有版本库中执行相同的Mercurial命令。 |
allpaths | AllPathsExtension | 运行push on multiple paths 等命令 |
artemis | ArtemisExtension | 简单轻巧的问题跟踪器 |
automv | AutomvExtension | 自动检测文件重命名 |
autopager | AutopagerExtension | 输出超过一个屏幕时调用寻呼机 |
b | bExtension | 分布式bug跟踪系统基于断轻量级任务管理器ŧ |
bfiles | BfilesExtension | 处理大型二进制文件 |
bigfiles | BigfilesExtension | 支持hg repo外存储的大文件版本 |
buglink | BugLinkExtension | 允许链接变更集和问题ID |
bugtracker | BugtrackerExtension | Mercurial的一个微小的分布式错误追踪扩展 |
bundleclone | BundleCloneExtension | 使用预生成的包进行克隆 |
casefold | CaseFoldExtension | 成功解开案件折叠冲突 |
caseguard | CaseGuardExtension | 如果可能导致CaseFolding冲突,则阻止用户将文件添加到版本库 |
casestop | CasestopExtension | 在提交时停止大小写折叠冲突 |
chart | ChartExtension | 显示活动图表(另请参阅ActivityExtension和ChurnExtension) |
checkfiles | CheckFilesExtension | 提交钩子和命令以检查并修复选项卡和尾随空格 |
checkmeta | CheckMetaExtension | 强制执行可配置的文件特征,如文件编码。 |
cifiles | CifilesExtension | 打印所有签入文件的名称 |
cloc | ClocExtension | 计算源代码行 |
codesmell | CodesmellExtension | 在提出“臭臭”变化之前询问 |
contains | ContainsExtension | 测试分支中是否包含changset |
crecord | CrecordExtension | 以图形方式选择要提交的文件/块/行 |
cutehg | CuteHgExtension | 用于mercurial命令的一组易于安装和使用的对话框 |
deps | DepsExtension | 创建和管理版本化的版本库依赖项 |
digest | DigestExtension | 为传出/捆绑创建和使用小摘要文件 |
dotlog | DotLogExtension | 然而另一个DOT画家 |
dynapath | dynapath | 动态重写路径以使用基于当前本地IP的本地镜像。 |
exclude | ExcludeExtension | 默认情况下排除某些已修改的文件(例如,始终修改的配置文件) |
filereview | FileReviewExtension | 使用mercurial对任何项目执行代码审查 |
fixcase | FixcaseExtension | 修复外部工具更改文件名大小写的问题 |
fixrenames | FixrenamesExtension | 重播旧历史记录以添加重命名信息 |
fixutf8 | FixUtf8Extension | 修复带有文件名的非utf8系统的问题(Windows从不支持utf8文件名) |
ftp | FTPExtension | 管理FTP服务器上传的快照 |
graphviz | GraphvizExtension | 生成DOT语言源以可视化变更集树 |
group | GroupExtension | 允许直观地重新组合一组更改集 |
grepfile | GrepfileExtension | 搜索文件以获取正则表达式 |
hgbb | BitbucketExtension | 使用bitbucket.org版本库的几个助手 |
hgexternals | HgExternals | 将外部版本库拖入Mercurial版本库 |
hgext.markdown | MarkdownExtension | hgweb的Markdown扩展 |
hgflowdock | FlowdockExtension | 发送通知给flowdock.com |
hglist | hglist | Mercurial 的ls命令 |
hglock-le | HgLockLEExtension | 允许用户在一个本地版本库中进行并行文件修改时相互通知 |
hgopenurl | HgOpenURLExtension | 在浏览器中快速显示版本库URL |
hgreview | HgReviewExtension | 上传/刷新并从rietveld codereview实例中获取补丁 |
hgsftp | hgsftp | 在SFTP上使用Mercurial |
hgsite | HgSiteExtension | 直接从Mercurial版本库中提供网站 |
hgsql | hgsqlExtension | 通过使用MySQL后端允许服务器多主机。 |
hgview | hgview | 用于可视化导航版本库历史记录和比较多个修订版的工具 |
hg-textauth | hg-textauth | 明文文件验证 |
hgtrac | HgTracExtension | Mercurial / Trac集成挂钩(Trac / Mercurial的前/后挂钩) |
hgwebcachingproxy | hgwebcachingproxy | 缓存hgweb代理,缓存并在本地提供拉取请求,分配负载并提供良好的带宽利用率。 |
hgxmpp | HgJabberExtension | Mercurial Jabber Notification Hook(Jabber / Mercurial的前/后挂钩) |
hotfiles | HotFilesExtension | 指定最容易包含问题的文件 |
info | InfoExtension | 显示有关版本库的基本信息 |
infocalypse | Infocalypse | 通过Freenet高效,分散,匿名和加密共享代码 |
killbom | KillBomExtension | 在提交之前从具有指定编码的文件中删除BOM(字节顺序标记)字符 |
makewritable | MakewritableExtension | 以交互方式从文件中删除只读标志 |
moinport | MoinportExtension | 从MoinMoin Wiki 获取更改 |
narrowhg | narrowhg | 仅下载部分历史记录,请参阅NarrowClonePlan |
pack | mercurial-pack-extension | 打包给定修订中涉及的所有文件(如果您的客户不知道diff文件是什么) |
path_pattern | PathPatternExtension | 在.hgrc中全局定义[路径],并让它们知道您的所有版本库。 |
paste | PasteExtension | 将更改粘贴到pastebin |
pastebin | PastebinExtension | 将更改粘贴到公共和私有粘贴代码 |
prompt | PromptExtension | 将有关当前版本库的信息放入shell提示符中 |
publishall | PublishAllExtension | 发布到您的所有集合版本库(即:路径) |
punchcard | PunchcardExtension | 生成您的提交习惯的“穿孔卡”图 |
reviewboard | ReviewboardExtension | 将更改集发布到Review Board服务器以供审阅 |
qct | QctExtension | 提供对Qct提交工具的访问 |
qtimes | QtimesExtension | 保存或恢复受修补程序队列影响的文件的修改时间 |
qup | QupExtension | 将MQ补丁移动到未应用的系列部分的顶部 |
rdiff | RdiffExtension | 允许diff对远程版本库起作用 |
remotefilelog | RemotefilelogExtension | 允许克隆在服务器上保留大部分文件历史记录。 |
reviewassiatant | CodeReviewExtension | 代码审查工具可帮助您创建审阅请求并在不离开Visual Studio的情况下对其进行响应 |
rsync | RemoteSyncExtension | 使您的工作目录与版本库外部的远程文件保持同步 |
rupdate | RemoteUpdateExtension | 如果通过ssh托管远程版本库,请将远程版本库更新为指定的修订 |
snap | SnapExtension | 存储在Mercurial版本库之外的版本(大)文件快照 |
socks_proxy | socks_proxy | SOCKS代理支持 |
softrebase | SoftRebaseExtension | 将可能复杂的rebase调用转换为多个更简单的调用 |
spellcheck | SpellcheckExtension | 以交互方式纠正提交消息中的拼写错误; 还包括一个钩子,用于拒绝其提交消息中存在拼写错误的变更集 |
subpaths | SubpathsExtension | 使用中央文件管理子路径重映射,分布在克隆和拉取 |
talaria | TalariaExtension | 管理HTML文档的简单分层树,例如网站,文档等 |
terse-status | terse-status | 制作' hg status '节目?foo /当foo中的所有文件都未跟踪时 |
textful | TextfulExtension | 显示时将二进制文件转换为文本或处理字符编码 |
tfs | TfsExtension | 在变更集中引用错误ID时更新Team Foundation Server工作项 |
timestamp | TimestampExtension | 保存并恢复文件时间戳 |
timestamp_mod | TimestampModExtension | 自动保存和恢复版本库中所有文件的文件时间戳。 |
timetracker | timetracker | 跟踪项目花费的时间 |
untouch | UntouchExtension | 保存或恢复文件的修改时间 |
update_version | UpdateVersionExtension | 标记时自动更新代码中的版本号。 |
webuserdir | WebUserDirExtension | hgwebdir上的/ ~username /下的主机用户版本库 |
zipdoc | ZipdocExtension | 版本控制压缩文档格式(如docx或odt)作为未压缩的zip压缩文件以改进增量压缩。 |
参见
扩展开发用于有关扩展的核心开发人员信息