英语法语西班牙语

Ad


OnWorks 网站图标

hg - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 hg

这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 hg,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


hg - Mercurial 源代码管理系统

概要


hg 命令 [选项]……[论点] ...

商品描述


hg command 为 Mercurial 系统提供命令行界面。

指挥 ELEMENTS


文件...
表示一个或多个文件名或相对路径文件名; 请参阅文件名模式
有关模式匹配的信息

表示本地机器上的路径

调整
表示一个变更集,可以指定为变更集修订号、标签、
或变更集哈希值的唯一子字符串

知识库
本地存储库的路径名或远程存储库的 URI。

配置


-R,--存储库
存储库根目录或覆盖包文件的名称

--cwd
更改工作目录

-y, --非交互式
不提示,所有提示自动选第一项

-q, - 安静的
抑制输出

-v, --详细
启用额外输出

--配置
设置/覆盖配置选项(使用“section.name=value”)

-调试
启用调试输出

--调试器
启动调试器

-编码
设置字符集编码(默认:UTF-8)

--编码模式
设置字符集编码模式(默认:严格)

- 追溯
总是在异常时打印回溯

- 时间 time 命令需要多长时间

- 轮廓
打印命令执行配置文件

- 版
输出版本信息并退出

-H, - 帮帮我
显示帮助并退出

- 隐
考虑隐藏的变更集

[+] 标记选项可以多次指定

指令



在下一次提交时添加指定的文件:

hg 添加 [选项]... [文件]...

计划文件进行版本控制并添加到存储库。

这些文件将在下次提交时添加到存储库中。 要在此之前撤消添加,
看到 hg 忘记.

如果没有给出名称,则将所有文件添加到存储库中(匹配的文件除外) .hgignore).

例子:

· 新(未知)文件由自动添加 hg :

$ls
foo.c
$ hg 状态
? foo.c
$ hg 添加
添加 foo.c
$ hg 状态
一个 foo.c

· 可以指定要添加的具体文件:

$ls
酒吧.c foo.c
$ hg 状态
? 酒吧.c
? foo.c
$ hg 添加 bar.c
$ hg 状态
一个bar.c
? foo.c

如果所有文件都成功添加,则返回 0。

选项:

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-S, --子仓库
递归到子存储库

-n, --试运行
不执行操作,只打印输出

[+] 标记选项可以多次指定

添加删除
添加所有新文件,删除所有丢失的文件:

hg addremove [选项]... [文件]...

添加所有新文件并从存储库中删除所有丢失的文件。

除非给出名称,否则如果新文件与中的任何模式匹配,则忽略它们
.hgignore. 与添加一样,这些更改在下一次提交时生效。

使用 -s/--similarity 选项检测重命名的文件。 这个选项需要一个百分比
在 0(禁用)和 100(文件必须相同)之间作为其参数。 带参数
大于 0,这会将每个删除的文件与每个添加的文件进行比较并记录那些
与重命名足够相似。 以这种方式检测重命名的文件可能会很昂贵。 使用后
这个选项, hg 状态 -C 可用于检查哪些文件被识别为移动或
更名。 如果未指定,-s/--similarity 默认为 100,并且仅重命名相同的
检测到文件。

例子:

· 许多文件(bar.c 和 foo.c)是新的,而 foobar.c 已被删除(没有
运用 hg 去掉) 来自存储库:

$ls
酒吧.c foo.c
$ hg 状态
! foob​​ar.c
? 酒吧.c
? foo.c
$ hg 地址删除
添加 bar.c
添加 foo.c
删除 foobar.c
$ hg 状态
一个bar.c
一个 foo.c
R foobar.c

· 文件 foobar.c 被移动到 foo.c 而不使用 hg 重命名. 后来,是
稍微编辑:

$ls
foo.c
$ hg 状态
! foob​​ar.c
? foo.c
$ hg addremove --相似度 90
删除 foobar.c
添加 foo.c
将 foobar.c 的删除记录为重命名为 foo.c(94% 相似)
$ hg 状态 -C
一个 foo.c
foob​​ar.c
R foobar.c

如果所有文件都成功添加,则返回 0。

选项:

-是的,- 相似
通过相似性猜测重命名的文件 (0<=s<=100)

-S, --子仓库
递归到子存储库

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-n, --试运行
不执行操作,只打印输出

[+] 标记选项可以多次指定

注释
按行显示每个文件的变更集信息:

hg 注释 [-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] 文件...

列出文件中的更改,显示负责每一行的修订 ID。

此命令可用于发现更改的时间和更改者。

如果您包含 --file、--user 或 --date,除非您
还包括--number。

如果没有 -a/--text 选项,annotate 将避免处理它检测为二进制的文件。
使用 -a,annotate 无论如何都会对文件进行注释,尽管结果可能是
既无用也不可取。

成功返回 0。

选项:

-r,--rev
注释指定的修订版

- 跟随
按照副本/重命名并列出文件名(已弃用)

--不要关注
不要遵循副本和重命名

-一种, - 文本
将所有文件视为文本

-你, - 用户
列出作者(长 -v)

-F, - 文件
列出文件名

-d, - 日期
列出日期(带 -q 的缩写)

-n, - 数字
列出修订号(默认)

-C, --变更集
列出变更集

-l, - 电话号码
在第一次出现时显示行号

-w, --忽略所有空间
比较行时忽略空格

-b, --忽略空间变化
忽略空白量的变化

-B, --忽略空白行
忽略所有行都是空白的更改

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-T,- 模板
显示模板(实验)

[+] 标记选项可以多次指定

别名:责备

档案
创建存储库修订的未版本化存档:

hg 存档 [选项]... DEST

默认情况下,使用的修订是工作目录的父目录; 使用 -r/--rev
指定不同的修订版。

根据文件扩展名自动检测存档类型(要覆盖,使用
-t/--type)。

例子:

· 创建一个包含 1.0 版本的 zip 文件:

hg 存档 -r 1.0 项目-1.0.zip

· 创建一个 tarball,不包括 .hg 文件:

hg 存档 project.tar.gz -X ".hg*"

有效类型是:



一个充满文件的目录(默认)

焦油

tar 存档,未压缩

tbz2

tar 存档,使用 bzip2 压缩

g

tar 存档,使用 gzip 压缩

压缩文件

zip 存档,未压缩

拉链

zip 存档,使用 deflate 压缩

使用格式字符串给出目标存档或目录的确切名称; 看
hg 帮助 出口 了解详情。

添加到存档文件的每个成员都预先添加了一个目录前缀。 使用 -p/--prefix
为前缀指定格式字符串。 默认是存档的基本名称,使用
删除了后缀。

成功返回 0。

选项:

--无解码
不要通过解码器传递文件

-p,- 字首
归档文件的目录前缀

-r,--rev
修订分发

-t,- 类型
要创建的分发类型

-S, --子仓库
递归到子存储库

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

[+] 标记选项可以多次指定

退出
早期变更集的反向影响:

汞退出 [选项]... [-r] 修订版

在当前工作目录中准备一个具有撤销 REV 效果的新变更集。 如果
没有遇到冲突,它将立即提交。

如果 REV 是工作目录的父目录,则提交这个新的变更集
自动(除非指定了 --no-commit)。

备注 hg 退出 不能用于修复不需要的或不正确的合并。

例子:

· 反转工作目录的父级效果。 这次退出将是
立即承诺:

汞退出 -r 。

· 扭转之前糟糕的修订版23的效果:

汞退出 -r 23

· 扭转之前的错误修订 23 的影响,并保持未提交的更改:

hg backout -r 23 --无提交
hg commit -m "退出修订版 23"

默认情况下,挂起的变更集将有一个父级,维护线性历史。 和
--merge,挂起的变更集将有两个父级:
工作目录和 REV 的新子级,它可以简单地撤消 REV。

在 1.7 版本之前,没有 --merge 的行为等同于指定 --merge
其次是 hg 更新 - 干净的 . 取消合并并保留 REV 的孩子作为头
分开合并。

我们 hg 帮助 日期 获取对 -d/--date 有效的格式列表。

我们 hg 帮助 还原 一种将文件恢复到另一个修订版本状态的方法。

成功时返回 0,如果没有要退出的内容或存在未解析的文件,则返回 1。

选项:

- 合并
退出后与旧的 dirstate 父级合并

- 犯罪
如果没有遇到冲突,则提交(已弃用)

--不提交
不要提交

--父母
退出合并时要选择的父级(已弃用)

-r,--rev
修改退出

-e, - 编辑
在提交消息上调用编辑器

-t,- 工具
指定合并工具

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-米,- 信息
使用文本作为提交消息

-l,--日志文件
从文件中读取提交消息

-d,- 日期
将指定日期记录为提交日期

-你,- 用户
将指定用户记录为提交者

[+] 标记选项可以多次指定

二等分
变更集的细分搜索:

hg 对分 [-gbsr] [-U] [-c CMD] [REV]

此命令有助于查找引入问题的变更集。 要使用,标记最早
您知道的变更集显示问题很糟糕,然后标记最新的变更集
没有问题就好了。 Bisect 会将您的工作目录更新为
测试(除非指定了 -U/--noupdate 选项)。 完成测试后,
将工作目录标记为好或坏,bisect 将更新到另一个
候选变更集或宣布它发现了错误的修订。

作为一种快捷方式,您还可以使用修订参数将修订标记为好或坏
没有先检查出来。

如果您提供命令,它将用于自动二等分。 环境
变量 HG_NODE 将包含正在测试的变更集的 ID。 的退出状态
命令将用于将修订标记为好或坏:状态 0 表示好,125 表示
跳过修订,127(未找到命令)将中止二分,以及任何其他
非零退出状态意味着修订版是错误的。

一些例子:

· 用已知的坏修订 34 和好的修订 12 开始对分:

汞二等分--坏 34
汞二等分——好 12

· 通过将当前修订标记为好或坏来推进当前的二等分:

汞二等分--好
汞二等分--坏

· 标记当前修订或已知修订,以跳过(例如,如果该修订是
由于另一个问题而无法使用):

汞二等分--跳过
汞二等分 --skip 23

· 跳过所有不涉及目录的修订 FOO or 酒吧:

hg bisect --skip "!( file('path:foo') & file('path:bar') )"

· 忘记当前的二等分:

汞二等分-重置

· 使用 'make && make tests' 自动找到第一个损坏的修订:

汞二等分-重置
汞二等分--坏 34
汞二等分——好 12
hg bisect --command "make && make tests"

· 查看在当前二等分中状态已知的所有变更集:

hg log -r“二等分(修剪)”

· 查看当前被一分为二的变更集(如果运行时特别有用
-U/--无更新):

hg log -r“二等分(当前)”

· 查看参与当前二等分的所有变更集:

hg log -r“平分(范围)”

· 你甚至可以得到一个漂亮的图表:

hg log --graph -r "bisect(range)"

我们 hg 帮助 调整 欲了解更多关于 平分() 关键词。

成功返回 0。

选项:

-r, - 重启
重置平分状态

-G, - 好的
标记变更集良好

-b, - 坏的
将变更集标记为错误

-是的, - 跳过
跳过测试变更集

-e, - 延长
扩大平分范围

-C,- 命令
使用命令检查变更集状态

-U, --无更新
不更新到目标

书签
创建新书签或列出现有书签:

hg 书签 [选项]... [名称]...

书签是变更集上的标签,用于帮助跟踪开发路线。 书签是
未版本化,可以移动、重命名和删除。 删除或移动书签没有
对相关变更集的影响。

创建或更新书签会使其被标记为“活动”。 活跃的
书签用“*”表示。 提交后,活动书签将前进
到新的提交。 一个平原 hg 更新 如果可能,还将推进活动书签。
远离书签更新将导致它被停用。

可以在存储库之间推送和拉取书签(请参阅 hg 帮助 hg 帮助
)。 如果共享书签已发散,则使用“name@path”形式的新“发散书签”
将被创建。 使用 hg 合并 将解决分歧。

名为“@”的书签具有特殊属性 hg 克隆 默认情况下会检查它
如果它存在。

例子:

· 为新的开发线创建一个活动书签:

汞书新功能

· 创建一个非活动书签作为位置标记:

hg book -i 评论

· 在另一个变更集上创建一个非活动书签:

hg book -r .^ 测试

· 将书签火鸡重命名为晚餐:

hg book -m 火鸡晚餐

·从另一个分支移动'@'书签:

汞书 -f @

选项:

-F, - 力量


-r,--rev
书签操作的修订

-d, - 删除
删除给定的书签

-米,- 改名
重命名给定的书签

-一世, --不活动
将书签标记为非活动状态

-T,- 模板
显示模板(实验)

别名:书签


设置或显示当前分支名称:

hg 分支 [-fC] [名称]

注意分支名称是永久的和全局的。 利用 hg 书签 创造一个轻量级的
改为书签。 看 hg 帮助 词汇表 有关命名分支的更多信息
和书签。

不带参数,显示当前分支名称。 用一个参数,设置工作
目录分支名称(该分支在下一次提交之前不会存在于存储库中)。
标准做法建议在“默认”分支上进行主要开发。

除非指定了 -f/--force,否则 branch 不会让你设置一个已经存在的分支名称
存在。

使用 -C/--clean 将工作目录分支重置为工作目录的父目录分支
目录,否定先前的分支更改。

使用该命令 hg 更新 切换到现有分支。 利用 hg 承诺 --关闭分支
将此分支头标记为关闭。 当一个分支的所有负责人都关闭时,该分支将
被视为关闭。

成功返回 0。

选项:

-F, - 力量
设置分支名称,即使它隐藏了现有分支

-C, - 干净的
将分支名称重置为父分支名称

分支机构
列出名为分支的存储库:

汞分支 [-c]

列出存储库的命名分支,指出哪些是非活动的。 如果 -c/--关闭
指定,还列出已标记为关闭的分支(请参阅 hg 承诺
--关闭分支).

使用该命令 hg 更新 切换到现有分支。

返回0。

选项:

-一种, - 积极的
仅显示具有未合并头部的分支(已弃用)

-C, - 关闭
显示正常和关闭的分支

-T,- 模板
显示模板(实验)


创建一个变更组文件:

hg bundle [-f] [-t TYPE] [-a] [-r REV]... [--base REV]... 文件 [DEST]

生成一个变更组文件,收集要添加到存储库的变更集。

要创建包含所有变更集的包,请使用 -a/--all(或 --base null)。 否则,汞
假设目标将包含您使用 --base 参数指定的所有节点。
否则,hg 将假定存储库具有目标中的所有节点,或者
如果未指定目的地,则默认推送/默认。

您可以使用 -t/--type 选项更改包格式。 您可以指定一个压缩,一个
捆绑版本或两者都使用破折号(comp-version)。 可用的压缩方法有:
none、bzip2 和 gzip(默认情况下,使用 bzip2 压缩包)。 可用的
格式为:v1、v2(默认为最合适)。

然后可以使用传统方式传输捆绑文件并应用于另一个
使用 unbundle 或 pull 命令的存储库。 这在直接推拉时很有用
不可用或导出整个存储库是不可取的。

应用捆绑包保留所有变更集内容,包括权限、复制/重命名
信息和修订历史。

成功时返回 0,如果未发现更改则返回 1。

选项:

-F, - 力量
即使目的地不相关也运行

-r,--rev
旨在添加到目的地的变更集

-b,- 分支
您想要捆绑的特定分支

- 根据
假设在目的地可用的基本变更集

-一种, - 全部
捆绑存储库中的所有变更集

-t,- 类型
要使用的捆绑压缩类型(默认值:bzip2)

-e,--ssh
指定要使用的 ssh 命令

--远程命令
指定要在远程端运行的 hg 命令

--不安全
不验证服务器证书(忽略 web.cacerts 配置)

[+] 标记选项可以多次指定


输出文件的当前或给定版本:

hg cat [选项]... 文件...

打印指定的文件,因为它们在给定的修订版中。 如果没有给出修订,则
使用工作目录的父目录。

输出可能是一个文件,在这种情况下,文件的名称是使用格式给出的
细绳。 格式规则如下:

%%

文字“%”字符

%s

正在打印的文件的基本名称

%d

正在打印的文件的目录名,或“.” 如果在存储库根目录中

%p

正在打印的文件的根相对路径名

%H

变更集哈希(40 个十六进制数字)

%R

变更集修订号

%h

短格式变更集哈希(12 个十六进制数字)

%r

零填充变更集修订号

%b

导出存储库的基本名称

成功返回 0。

选项:

-o,- 输出
将输出打印到具有格式化名称的文件

-r,--rev
打印给定的修订版

- 解码
应用任何匹配的解码过滤器

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

[+] 标记选项可以多次指定

克隆
制作现有存储库的副本:

hg clone [选项]... 源 [DEST]

在新目录中创建现有存储库的副本。

如果未指定目标目录名称,则默认为源的基本名称。

源的位置被添加到新存储库的 .hg/hgrc 文件,作为默认
用于未来的拉动。

只有本地路径和 ssh:// 支持 URL 作为目标。 为了 ssh:// 目的地,
没有工作目录或 .hg/hgrc 将在远程端创建。

如果源存储库设置了名为“@”的书签,则该修订将被检出
默认在新存储库中。

要检查特定版本,请使用 -u/--update 或 -U/--noupdate 创建克隆
没有工作目录。

要仅提取变更集的子集,请指定一个或多个修订标识符
-r/--rev 或带有 -b/--branch 的分支。 生成的克隆将只包含指定的
变更集及其祖先。 这些选项(或 'clone src#rev dest')意味着 --pull,甚至
用于本地源存储库。

注意 指定标签将包括带标签的变更集,但不包括包含
标签。

为了提高效率,只要源和目标都打开,就使用硬链接进行克隆
相同的文件系统(注意这仅适用于存储库数据,不适用于工作
目录)。 一些文件系统,例如 AFS,错误地实现了硬链接,但没有
报告错误。 在这些情况下,请使用 --pull 选项来避免硬链接。

在某些情况下,您可以使用完整的硬链接克隆存储库和工作目录


$ cp -al 回购 REPOCLONE

这是最快的克隆方式,但并不总是安全的。 操作不是原子的
(确保在操作期间不修改 REPO 由您决定)并且您必须使
确保您的编辑器破坏了硬链接(Emacs 和大多数 Linux 内核工具都会这样做)。 还有,这是
与将元数据放在 .hg 目录下的某些扩展不兼容,
比如 mq。

Mercurial 会将工作目录更新为第一个适用的修订版
列表:

一个。 如果 -U 或源存储库没有变更集,则为 null

湾如果你 。 并且源存储库是本地的,源存储库的第一个父级
工作目录

C。 用 -u 指定的变更集(如果是分支名称,则表示该分支的最新头
分支)

d. 用 -r 指定的变更集

e. 用 -b 指定的最顶端的头部

F。 使用 url#branch 源语法指定的最顶端的头部

G。 标有“@”书签的修订版(如果存在)

H。 默认分支的最顶端

一世。 小费

当从支持它的服务器克隆时,Mercurial 可能会从
服务器通告的 URL。 完成后,钩子对传入的变更集进行操作并
更改组可能会触发两次,一次针对从 URL 中获取的包,另一次针对任何
未从此 URL 获取的其他数据。 此外,如果发生错误,存储库
可以回滚到部分克隆。 此行为可能会在未来版本中更改。 看 hg
帮助 -e 克隆包 了解更多信息。

例子:

· 将远程仓库克隆到名为 hg/ 的新目录:

汞克隆 http://selenic.com/hg

· 创建轻量级本地克隆:

hg 克隆项目/ 项目功能/

· 从 ssh 服务器上的绝对路径克隆(注意双斜线):

hg 克隆 ssh://user@server//home/projects/alpha/

· 在检查指定版本的同时通过 LAN 进行高速克隆:

hg 克隆——未压缩 http://server/repo -u 1.5

· 在特定修订后创建一个没有变更集的存储库:

hg clone -r 04e544 实验/好/

· 克隆(并跟踪)一个特定的命名分支:

汞克隆 http://selenic.com/hg#稳定的

我们 hg 帮助 网址 有关指定 URL 的详细信息。

成功返回 0。

选项:

-U, --无更新
克隆将包括一个空的工作目录(只有一个存储库)

-你,--更新版本
要签出的修订、标记或分支

-r,--rev
包括指定的变更集

-b,- 分支
只克隆指定的分支

- 拉 使用 pull 协议复制元数据

--未压缩
使用未压缩传输(通过 LAN 快速传输)

-e,--ssh
指定要使用的 ssh 命令

--远程命令
指定要在远程端运行的 hg 命令

--不安全
不验证服务器证书(忽略 web.cacerts 配置)

[+] 标记选项可以多次指定

承诺
提交指定的文件或所有未完成的更改:

hg commit [选项]... [文件]...

将给定文件的更改提交到存储库中。 与集中式 SCM 不同,这
操作是本地操作。 看 hg 一种主动分发更改的方法。

如果省略文件列表,则报告的所有更改 hg 状态 将被提交。

如果您要提交合并的结果,请不要提供任何文件名或 -I/-X
过滤器。

如果未指定提交消息,Mercurial 将启动您配置的编辑器,您可以
输入消息。 如果您的提交失败,您将在
.hg/最后一条消息.txt.

--close-branch 标志可用于标记当前分支头关闭。 当所有的头
分行关闭,该分行将被视为关闭且不再上市。

--amend 标志可用于修改工作目录的父目录
除了当前报告的更改之外,还包含父项中的更改的提交
hg 状态,如果有的话。 旧提交存储在备份包中
.hg/带备份 (见 hg 帮助 hg 帮助 解开 关于如何恢复它)。

除非指定,否则消息、用户和日期取自修改后的提交。 当一条消息
未在命令行中指定,编辑器将打开并显示已修改的消息
犯罪。

无法修改公共变更集(请参阅 hg 帮助 阶段) 或具有
儿童。

我们 hg 帮助 日期 获取对 -d/--date 有效的格式列表。

成功返回 0,如果没有改变则返回 1。

例子:

· 提交所有以 .py 结尾的文件:

hg commit --include "set:**.py"

· 提交所有非二进制文件:

hg commit --exclude "set:binary()"

· 修改当前提交并将日期设置为现在:

hg commit --amend --date 现在

选项:

-一种, --添加删除
在提交之前将新的/丢失的文件标记为添加/删除

--关闭分支
将分支头标记为关闭

- 修正
修改工作目录的父目录

-是的, - 秘密
使用秘密阶段进行提交

-e, - 编辑
在提交消息上调用编辑器

-一世, - 交互的
使用交互模式

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-米,- 信息
使用文本作为提交消息

-l,--日志文件
从文件中读取提交消息

-d,- 日期
将指定日期记录为提交日期

-你,- 用户
将指定用户记录为提交者

-S, --子仓库
递归到子存储库

[+] 标记选项可以多次指定

别名:ci

配置
显示所有 hgrc 文件的组合配置设置:

hg 配置 [-u] [名称]...

不带参数,打印所有配置项的名称和值。

使用 section.name 形式的一个参数,仅打印该配置项的值。

使用多个参数,打印具有匹配部分的所有配置项的名称和值
名称。

使用 --edit,在用户级配置文件上启动编辑器。 使用 --global,编辑
系统范围的配置文件。 使用 --local,编辑存储库级配置文件。

使用 --debug,为每个配置项打印源(文件名和行号)。

我们 hg 帮助 配置 有关配置文件的更多信息。

成功返回 0,如果 NAME 不存在则返回 1。

选项:

-你, --不可信
显示不受信任的配置选项

-e, - 编辑
编辑用户配置

-l, - 当地的
编辑存储库配置

-G, - 全球的
编辑全局配置

别名:showconfig debugconfig

复制
将文件标记为为下一次提交复制:

hg 复制 [选项]... [源]... DEST

将 dest 标记为具有源文件的副本。 如果 dest 是目录,则将副本放在该目录中
目录。 如果 dest 是文件,则源必须是单个文件。

默认情况下,此命令复制工作文件中存在的文件内容
目录。 如果使用 -A/--after 调用,则记录操作,但不进行复制
执行。

此命令在下一次提交时生效。 要在此之前撤消副本,请参阅 hg 还原.

成功时返回 0,遇到错误时返回 1。

选项:

-一种, - 后
记录已经发生的副本

-F, - 力量
强行复制现有的托管文件

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-n, --试运行
不执行操作,只打印输出

[+] 标记选项可以多次指定

别名:cp

差异
diff 存储库(或选定的文件):

hg diff [选项]... ([-c REV] | [-r REV1 [-r REV2]]) [文件]...

显示指定文件的修订之间的差异。

文件之间的差异使用统一的差异格式显示。

备注 hg 差异 可能会产生意外的合并结果,因为它会默认比较
如果没有修订,则针对工作目录的第一个父变更集
指定的。

当给出两个修订参数时,这些修订之间会显示更改。 如果
只指定了一个修订版,然后将该修订版与工作目录进行比较,
并且,当未指定修订时,将工作目录文件与其
第一个父母。

或者,您可以使用修订版指定 -c/--change 以查看其中的更改
变更集相对于它的第一个父级。

如果没有 -a/--text 选项,diff 将避免生成它检测为的文件的差异
二进制。 使用 -a,diff 无论如何都会生成一个差异,可能会产生不良结果。

使用 -g/--git 选项以 git 扩展差异格式生成差异。 更多
信息,阅读 hg 帮助 差异.

例子:

· 将当前工作目录中的文件与其父目录进行比较:

汞差异 foo.c

· 比较一个目录的两个历史版本,以及重命名信息:

汞差异 --git -r 1.0:1.2 库/

· 获取与某个日期上次更改相关的更改统计信息:

hg diff --stat -r "date('may 2')"

· diff 包含关键字的所有新添加的文件:

hg diff "set: added() 和 grep(GNU)"

· 比较一个修订版本和它的父版本:

hg diff -c 9353 # 与第一个父级比较
hg diff -r 9353^:9353 # 使用 revset 语法相同
hg diff -r 9353^2:9353 # 与第二个父级比较

成功返回 0。

选项:

-r,--rev
调整

-C,- 改变
修改后的变化

-一种, - 文本
将所有文件视为文本

-G, --git
使用 git 扩展差异格式

--节点
从差异标头中省略日期

--无前缀
从文件名中省略 a/ 和 b/ 前缀

-p, --显示功能
显示每个更改在哪个函数中

- 逆转
产生一个撤消更改的差异

-w, --忽略所有空间
比较行时忽略空格

-b, --忽略空间变化
忽略空白量的变化

-B, --忽略空白行
忽略所有行都是空白的更改

-U,- 统一
要显示的上下文行数

--统计 输出 diffstat 样式的更改摘要

- 根
产生相对于子目录的差异

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-S, --子仓库
递归到子存储库

[+] 标记选项可以多次指定

出口
转储一个或多个变更集的标头和差异:

hg 导出 [选项]... [-o OUTFILESPEC] [-r] [REV]...

打印一个或多个修订的变更集标题和差异。 如果没有给出修改,
使用工作目录的父目录。

变更集标题中显示的信息是:作者、日期、分支名称(如果
非默认)、变更集哈希、父项和提交注释。

备注 hg 出口 可能会为合并变更集生成意外的差异输出,因为它会
仅将合并变更集与其第一个父项进行比较。

输出可能是一个文件,在这种情况下,文件的名称是使用格式给出的
细绳。 格式规则如下:

%%

文字“%”字符

%H

变更集哈希(40 个十六进制数字)

%N

正在生成的补丁数量

%R

变更集修订号

%b

导出存储库的基本名称

%h

短格式变更集哈希(12 个十六进制数字)

%m

提交消息的第一行(仅限字母数字字符)

%n

零填充序列号,从 1 开始

%r

零填充变更集修订号

如果没有 -a/--text 选项,导出将避免生成它检测为的文件的差异
二进制。 使用 -a,export 无论如何都会产生差异,可能会产生不良结果。

使用 -g/--git 选项以 git 扩展差异格式生成差异。 看 hg 帮助
差异 获取更多信息.

使用 --switch-parent 选项,差异将针对第二个父级。 有可能
对审查合并很有用。

例子:

· 使用 export 和 import 将错误修正移植到当前分支:

汞出口-r 9353 | 汞进口 -

· 将两个修订版之间的所有变更集导出到带有重命名信息的文件中:

hg export --git -r 123:150 > changes.txt

· 将传出更改拆分为一系列具有描述性名称的补丁:

hg export -r "outgoing()" -o "%n-%m.patch"

成功返回 0。

选项:

-o,- 输出
将输出打印到具有格式化名称的文件

--切换父级
与第二个父母的差异

-r,--rev
出口的修订

-一种, - 文本
将所有文件视为文本

-G, --git
使用 git 扩展差异格式

--节点
从差异标头中省略日期

[+] 标记选项可以多次指定


列出跟踪文件:

hg 文件 [选项]... [模式]...

打印工作目录或指定修订中 Mercurial 控制下的文件
名称匹配给定的模式(不包括删除的文件)。

如果没有给出匹配的模式,该命令将打印下所有文件的名称
工作目录中的 Mercurial 控件。

例子:

· 列出当前目录下的所有文件:

hg 文件。

· 显示当前版本的大小和标志:

hg 文件 -vr 。

· 列出所有名为 README 的文件:

hg 文件 -I "**/README"

· 列出所有二进制文件:

hg 文件“设置:二进制()”

· 查找包含正则表达式的文件:

hg 文件 "set:grep('bob')"

· 使用 xargs 和 grep 搜索跟踪的文件内容:

hg 文件 -0 | xargs -0 grep foo

我们 hg 帮助 模式hg 帮助 文件集 有关指定文件的更多信息
图案。

如果找到匹配项,则返回 0,否则返回 1。

选项:

-r,--rev
在 REV 中搜索存储库

- 0, --打印0
用 NUL 结束文件名,用于 xargs

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-T,- 模板
显示模板(实验)

-S, --子仓库
递归到子存储库

[+] 标记选项可以多次指定

忘记
在下一次提交时忘记指定的文件:

hg 忘记 [选项]... 文件...

标记指定的文件,以便在下一次提交后不再跟踪它们。

这只会从当前分支中删除文件,而不是从整个项目历史记录中删除,并且
它不会从工作目录中删除它们。

要从工作目录中删除文件,请参见 hg 去掉.

要在下一次提交之前撤消忘记,请参阅 hg .

例子:

·忘记新添加的二进制文件:

hg 忘记“设置:添加()和二进制()”

· 忘记将被 .hgignore 排除的文件:

hg忘记“设置:hgignore()”

成功返回 0。

选项:

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

[+] 标记选项可以多次指定

接枝
将更改从其他分支复制到当前分支:

汞移植 [选项]... [-r REV]... REV...

此命令使用 Mercurial 的合并逻辑从其他分支复制单个更改
不合并历史图中的分支。 这有时被称为“向后移植”或
'采摘樱桃'。 默认情况下,graft 将从源中复制用户、日期和描述
变更集。

作为当前修订的祖先的变更集,已经被嫁接,或
将跳过合并。

如果指定了 --log,日志消息将附加以下形式的注释:

(接枝自 CHANGESETHASH)

如果指定了 --force,即使它们已经是
或已嫁接到目的地。 这在修订之后很有用
被退回。

如果嫁接合并导致冲突,则嫁接过程会中断,以便
当前合并可以手动解决。 一旦解决了所有冲突,贪污
可以使用 -c/--continue 选项继续该过程。

注意 -c/--continue 选项不会重新应用之前的选项,--force 除外。

例子:

· 将单个更改复制到稳定分支并编辑其描述:

hg 更新稳定
汞移植 --edit 9393

· 嫁接一系列变更集,有一个例外,更新日期:

汞移植 -D "2085::2093 而不是 2091"

· 解决冲突后继续移植:

汞接枝-c

· 显示嫁接变更集的来源:

汞日志 --debug -r 。

· 显示按日期排序的修订:

hg log -r 'sort(all(), date)'

我们 hg 帮助 修订hg 帮助 调整 有关指定修订的更多信息。

成功完成时返回 0。

选项:

-r,--rev
修改移植

-C, - 继续
恢复中断的移植

-e, - 编辑
在提交消息上调用编辑器

- 日志 将移植信息附加到日志消息

-F, - 力量
强制移植

-D, - 当前日期
记录当前日期作为提交日期

-U, - 当前用户
将当前用户记录为提交者

-d,- 日期
将指定日期记录为提交日期

-你,- 用户
将指定用户记录为提交者

-t,- 工具
指定合并工具

-n, --试运行
不执行操作,只打印输出

[+] 标记选项可以多次指定

grep的
在指定的文件和修订中搜索模式:

hg grep [选项]...模式[文件]...

搜索文件的修订以获取正则表达式。

此命令的行为与 Unix grep 不同。 它只接受 Python/Perl 正则表达式。 它
搜索存储库历史记录,而不是工作目录。 它总是打印修订版
出现匹配的数字。

默认情况下,grep 只打印文件的第一个修订版的输出
比赛。 要让它打印包含匹配状态更改的每个修订版(“-”表示
成为不匹配的匹配,或“+”表示成为匹配的非匹配),使用
--所有标志。

如果找到匹配项,则返回 0,否则返回 1。

选项:

- 0, --打印0
用 NUL 结束字段

- 全部 打印所有匹配的修订

-一种, - 文本
将所有文件视为文本

-F, - 跟随
跟踪变更集历史或跨副本和重命名的文件历史

-一世, --忽略大小写
匹配时忽略大小写

-l, --带匹配的文件
仅打印匹配的文件名和修订

-n, - 电话号码
打印匹配的行号

-r,--rev
仅搜索在修订范围内更改的文件

-你, - 用户
列出作者(长 -v)

-d, - 日期
列出日期(带 -q 的缩写)

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

[+] 标记选项可以多次指定

元首
显示分支负责人:

hg 头 [-ct] [-r STARTREV] [REV]...

不带参数,显示存储库中所有打开的分支头。 分公司负责人是
在同一分支上没有后代的变更集。 他们是发展的地方
通常发生并且是更新和合并操作的通常目标。

如果给出一个或多个 REV,则只在与该关联的分支上打开分支头
显示指定的变更集。 这意味着您可以使用 hg 元首 . 看到人头
当前签出的分支。

如果指定了 -c/--closed,还显示标记为关闭的分支头(参见 hg 承诺
--关闭分支).

如果指定了 STARTREV,则只有那些是 STARTREV 后代的头才会被
显示。

如果 -t/--topo 被指定,命名分支机制将被忽略,只有拓扑
将显示头(没有子项的变更集)。

如果找到匹配头,则返回 0,否则返回 1。

选项:

-r,--rev
只显示 STARTREV 后代的头像

-t, --拓扑
仅显示拓扑头

-一种, - 积极的
仅显示活动分支头(已弃用)

-C, - 关闭
显示正常和闭合的分支头

- 风格
使用模板地图文件显示(已弃用)

-T,- 模板
用模板展示

帮助
显示给定主题的帮助或帮助概述:

汞帮助 [-ecks] [主题]

不带参数,打印带有简短帮助消息的命令列表。

给定主题、扩展名或命令名称,打印该主题的帮助。

如果成功则返回 0。

选项:

-e, - 延期
仅显示扩展帮助

-C, - 命令
只显示命令帮助

-k, - 关键词
显示匹配关键字的主题

-是的,- 系统
显示特定平台的帮助

[+] 标记选项可以多次指定

鉴定
识别工作目录或指定的修订:

hg 识别 [-nibtB] [-r REV] [SOURCE]

使用一个或两个父哈希打印标识 REV 处的存储库状态的摘要
标识符,如果工作目录有未提交的更改,则后跟“+”,
分支名称(如果不是默认值)、标签列表和书签列表。

当未给出 REV 时,打印存储库当前状态的摘要。

指定存储库根目录或 Mercurial 包的路径将导致查找操作
该存储库/捆绑包。

例子:

· 为工作目录生成一个构建标识符:

hg id --id > build-id.dat

· 找到一个标签对应的修订:

汞 id -n -r 1.3

· 检查远程存储库的最新版本:

hg id -r 提示 http://selenic.com/hg/

我们 hg 日志 用于生成有关特定修订的更多信息,包括完整哈希
身份标识。

如果成功则返回 0。

选项:

-r,--rev
识别指定的修订版

-n, --数字
显示本地修订号

-一世, - ID
显示全局修订 ID

-b, - 分支
显示分支

-t, --标签
显示标签

-B, - 书签
显示书签

-e,--ssh
指定要使用的 ssh 命令

--远程命令
指定要在远程端运行的 hg 命令

--不安全
不验证服务器证书(忽略 web.cacerts 配置)

别名:id

进口
导入一组有序的补丁:

hg 导入 [选项]...补丁...

导入补丁列表并单独提交它们(除非指定了 --no-commit)。

要从标准输入读取补丁,请使用“-”作为补丁名称。 如果指定了 URL,则
补丁将从那里下载。

导入首先将更改应用于工作目录(除非指定了 --bypass),
如果有未完成的更改,导入将中止。

使用 --bypass 将补丁直接应用和提交到存储库,而不会影响
工作目录。 如果没有 --exact,补丁将应用在工作之上
目录父修订版。

您可以直接从邮件消息中导入补丁。 甚至作为附件的补丁也能工作(到
使用正文部分,它必须键入 text/plain 或 text/x-patch)。 来自和主题标题
电子邮件消息用作默认提交者和提交消息。 所有文本/纯正文
第一个差异之前的部分被添加到提交消息中。

如果导入的补丁是由 hg 出口,来自补丁覆盖的用户和描述
来自消息头和正文的值。 在命令行中使用 -m/--message 和
-u/--user 覆盖这些。

如果指定了--exact,import 会将工作目录设置为每个补丁的父目录
在应用它之前,如果结果变更集的 ID 与当前变更集不同,则会中止
一个记录在补丁中。 这可能是由于字符集问题或其他
文本补丁格式的缺陷。

使用 --partial 确保即使某些大块失败也将从补丁创建变更集
申请。 申请失败的帅哥将被写入.rej 文件。 冲突
然后可以手动解决之前 hg 承诺 - 修正 运行以更新创建的
变更集。 这个标志的存在是为了让人们导入部分应用的补丁而不是
丢失关联的元数据(作者、日期、描述等)。

注意当没有帅哥干净地应用时, hg 进口 - 部分的 将创建一个空的变更集,
仅导入补丁元数据。

使用 -s/--similarity,hg 将尝试发现补丁中的重命名和副本
同样的方式 hg 添加删除.

可以通过设置外部补丁程序来执行补丁 用户界面补丁
配置选项。 对于默认的内部工具,也可以通过以下方式配置模糊
补丁.fuzz。 看 hg 帮助 配置 有关配置文件的更多信息以及如何
使用这些选项。

我们 hg 帮助 日期 获取对 -d/--date 有效的格式列表。

例子:

· 从网站导入传统补丁并​​检测重命名:

汞进口-s 80 http://example.com/bugfix.patch

· 从 hgweb 服务器导入变更集:

汞进口 http://www.selenic.com/hg/rev/5ca8c111e9aa

· 在 Unix 风格的 mbox 中导入所有补丁:

hg 导入incoming-patches.mbox

· 尝试准确恢复导出的变更集(并非总是可行):

hg import --exact proposal-fix.patch

· 使用外部工具应用对于默认内部工具来说太模糊的补丁。

hg 导入 --config ui.patch="patch --merge"fuzzy.patch

· 将默认模糊测试从 2 更改为不太严格的 7

hg 导入 --config ui.fuzz=7 fuzz.patch

成功时返回 0,部分成功时返回 1(参见 --partial)。

选项:

-p,- 跳闸
补丁的目录条选项。 这与相应的含义相同
补丁选项(默认值:1)

-b,- 根据
基本路径(已弃用)

-e, - 编辑
在提交消息上调用编辑器

-F, - 力量
跳过检查未提交的未提交更改(已弃用)

--不提交
不要提交,只需更新工作目录

- 旁路
在不接触工作目录的情况下应用补丁

- 部分的
即使一些帅哥失败了也要提交

- 精确的
将补丁应用于生成它的节点

- 字首
将补丁应用到子目录

--导入分支
使用补丁中的任何分支信息(由 --exact 暗示)

-米,- 信息
使用文本作为提交消息

-l,--日志文件
从文件中读取提交消息

-d,- 日期
将指定日期记录为提交日期

-你,- 用户
将指定用户记录为提交者

-是的,- 相似
通过相似性猜测重命名的文件 (0<=s<=100)

别名:补丁


显示在源中找到的新变更集:

hg 传入 [-p] [-n] [-M] [-f] [-r REV]... [--bundle 文件名] [SOURCE]

显示在指定路径/​​URL 或默认拉取位置中找到的新变更集。 这些
如果在您发布此内容时进行拉取,则将被拉取的变更集
命令。

有关有效源格式的详细信息,请参阅 pull。

带-B/--bookmarks,本地和远程书签比较的结果
显示存储库。 使用 -v/--verbose,还会显示每个书签的状态
像下面这样:

BM1 01234567890a 添加
BM2 1234567890ab 进阶
BM3 234567890abc 发散
BM4 34567890abcd 已更改

拉取时本地采取的动作取决于每个书签的状态:

添加

拉将创建它

高级

拉将更新它

发散的

拉将创建一个发散书签



结果取决于远程变更集

从拉取行为来看,书签只存在于远程
存储库被视为 添加,即使它实际上是本地删除的。

对于远程存储库,如果
传入后跟拉。

例子:

· 显示带有补丁和完整描述的传入更改:

hg 传入 -vp

· 显示不包括合并的传入更改,存储包:

hg in -vpM --bundlecoming.hg
hg 拉入.hg

· 简要列出捆绑包内的更改:

hg in changes.hg -T "{desc|firstline}\n"

如果有传入更改,则返回 0,否则返回 1。

选项:

-F, - 力量
即使远程存储库不相关也运行

-n, - 新的先来
首先显示最新记录

- 捆
将包存储到的文件

-r,--rev
打算添加的远程变更集

-B, - 书签
比较书签

-b,- 分支
您想要拉取的特定分支

-p, - 修补
显示补丁

-G, --git
使用 git 扩展差异格式

-l,- 限制
限制显示的更改数量

-M, --不合并
不显示合并

--统计 输出 diffstat 样式的更改摘要

-G, - 图形
显示修订版 DAG

- 风格
使用模板地图文件显示(已弃用)

-T,- 模板
用模板展示

-e,--ssh
指定要使用的 ssh 命令

--远程命令
指定要在远程端运行的 hg 命令

--不安全
不验证服务器证书(忽略 web.cacerts 配置)

-S, --子仓库
递归到子存储库

[+] 标记选项可以多次指定

别名:在

初始化
在给定目录中创建一个新存储库:

hg init [-e CMD] [--remotecmd CMD] [DEST]

在给定目录中初始化一个新存储库。 如果给定的目录不存在,
它将被创建。

如果没有给出目录,则使用当前目录。

可以指定一个 ssh:// URL 作为目的地。 看 hg 帮助 网址 更多
信息。

成功返回 0。

选项:

-e,--ssh
指定要使用的 ssh 命令

--远程命令
指定要在远程端运行的 hg 命令

--不安全
不验证服务器证书(忽略 web.cacerts 配置)

定位
找到匹配特定模式的文件(已弃用):

hg 定位 [选项]... [模式]...

打印工作目录中 Mercurial 控制下名称与给定匹配的文件
图案。

默认情况下,此命令搜索工作目录中的所有目录。 只搜索
当前目录及其子目录,使用“--include .”。

如果没有给出匹配的模式,该命令将打印下所有文件的名称
工作目录中的 Mercurial 控件。

如果要将此命令的输出提供给“xargs”命令,请使用 -0 选项
到这个命令和“xargs”。 这将避免“xargs”处理单个的问题
包含空格作为多个文件名的文件名。

我们 hg 帮助 以获得更通用的命令。

如果找到匹配项,则返回 0,否则返回 1。

选项:

-r,--rev
在 REV 中搜索存储库

- 0, --打印0
用 NUL 结束文件名,用于 xargs

-F, - 完整路径
从文件系统根打印完整路径

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

[+] 标记选项可以多次指定

日志
显示整个存储库或文件的修订历史:

汞日志 [选项]... [文件]

打印指定文件或整个项目的修订历史。

如果未指定修订范围,则默认为 小费:0 除非设置了--follow,其中
如果工作目录父目录用作起始修订版。

文件历史显示不遵循文件的重命名或复制历史。 使用 -f/--follow
使用文件名来跟踪重命名和复制的历史记录。 --follow 没有文件名
将只显示起始修订的祖先或后代。

默认情况下,此命令打印修订号和变更集 ID、标签、非平凡
父母,用户,日期和时间,以及每次提交的摘要。 当 -v/--verbose 开关
使用时,将显示更改的文件列表和完整的提交消息。

使用 --graph 将修订显示为 ASCII 艺术 DAG,最新变更集位于
顶端。 'o' 是一个变更集,'@' 是一个工作目录的父目录,'x' 已经过时,'+'
代表一个分支,其中来自下面几行的变更集是 'o' 合并的父级
同一行。

备注 hg 日志 - 修补 可能会为合并变更集生成意外的差异输出,因为它会
仅将合并变更集与其第一个父级进行比较。 此外,只有文件
与 BOTH 父母不同的将出现在文件中:.

注意 出于性能原因, hg 日志 文件 可以省略对分支所做的重复更改
并且不会显示删除或模式更改。 要查看所有此类更改,请使用
-- 删除开关。

一些例子:

· 带有完整描述和文件列表的变更集:

汞日志 -v

· 工作目录祖先的变更集:

汞日志 -f

· 当前分支上的最后 10 次提交:

汞日志 -l 10 -b 。

· 变更集显示文件的所有修改,包括删除:

hg log --删除文件.c

· 涉及目录的所有变更集,带有差异,不包括合并:

hg log -Mp 库/

· 与关键字匹配的所有修订号:

hg log -k bug --template "{rev}\n"

· 工作目录父目录的完整哈希标识符:

汞日志 -r 。 --template "{node}\n"

· 列出可用的日志模板:

hg log -T 列表

· 检查给定的变更集是否包含在标记版本中:

hg log -r "a21ccf 和祖先(1.9)"

· 查找某个用户在某个日期范围内的所有变更集:

hg log -k alice -d “2008 年 2008 月至 XNUMX 年 XNUMX 月”

· 最后一个标签后所有变更集的摘要:

hg log -r "last(tagged())::" --template "{desc|firstline}\n"

我们 hg 帮助 日期 获取对 -d/--date 有效的格式列表。

我们 hg 帮助 修订hg 帮助 调整 有关指定和订购的更多信息
修订。

我们 hg 帮助 模板 有关预打包样式和指定自定义模板的更多信息。

成功返回 0。

选项:

-F, - 跟随
跟踪变更集历史或跨副本和重命名的文件历史

--先关注
仅遵循合并变更集的第一个父级(已弃用)

-d,- 日期
显示匹配日期规范的修订

-C, --副本
显示复制的文件

-k,- 关键词
对给定文本进行不区分大小写的搜索

-r,--rev
显示指定的修订版或修订版

--已删除
包括删除文件的修订

-米, --仅合并
仅显示合并(已弃用)

-你,- 用户
用户提交的修订

--only-分支
仅显示给定命名分支内的变更集(已弃用)

-b,- 分支
在给定的命名分支中显示变更集

-P,- 修剪
不显示修订版或其任何祖先

-p, - 修补
显示补丁

-G, --git
使用 git 扩展差异格式

-l,- 限制
限制显示的更改数量

-M, --不合并
不显示合并

--统计 输出 diffstat 样式的更改摘要

-G, - 图形
显示修订版 DAG

- 风格
使用模板地图文件显示(已弃用)

-T,- 模板
用模板展示

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

[+] 标记选项可以多次指定

别名:历史

舱单
输出项目清单的当前或给定修订:

汞清单 [-r REV]

打印给定修订的版本控制文件列表。 如果没有给出修改,
使用工作目录的第一个父目录,如果没有修订,则使用空修订
检查过了。

使用 -v,打印文件权限、符号链接和可执行位。 使用 --debug,打印文件
修订哈希。

如果指定了选项 --all,则打印所有修订版的所有文件的列表。 这
包括删除和重命名的文件。

成功返回 0。

选项:

-r,--rev
修改显示

- 全部 列出所有修订版的文件

-T,- 模板
显示模板(实验)

合并
将另一个修订版合并到工作目录中:

hg 合并 [-P] [[-r] 修订版]

当前工作目录更新为在请求的修订中所做的所有更改
自上次共同的前任修订版以来。

在任一父级之间更改的文件被标记为已更改以供下一次提交和
在允许对存储库进行任何进一步更新之前,必须执行提交。 这
下一次提交将有两个父母。

- 工具 可用于指定用于文件合并的合并工具。 它覆盖了
HGMERGE 环境变量和您的配置文件。 看 hg 帮助 合并工具
选项​​。

如果未指定修订,则工作目录的父级是头修订,并且
当前分支正好包含另一个头部,默认情况下与另一个头部合并。
否则,必须提供与之合并的明确修订。

我们 hg 帮助 解决 有关处理文件冲突的信息。

要撤消未提交的合并,请使用 hg 更新 - 干净的 . 这将检查出一个干净的副本
原始合并父级,丢失所有更改。

成功返回 0,如果有未解析的文件,则返回 1。

选项:

-F, - 力量
强制合并,包括未完成的更改(已弃用)

-r,--rev
修订合并

-P, - 预览
审查要合并的修订(不执行合并)

-t,- 工具
指定合并工具

即将离任
显示在目标中未找到的变更集:

hg 输出 [-M] [-p] [-n] [-f] [-r REV]... [DEST]

显示未在指定目标存储库或默认推送中找到的变更集
地点。 如果请求推送,这些是将被推送的变更集。

有关有效目标格式的详细信息,请参阅 pull。

带-B/--bookmarks,本地和远程书签比较的结果
显示存储库。 使用 -v/--verbose,还会显示每个书签的状态
像下面这样:

BM1 01234567890a 添加
BM2 删除
BM3 234567890abc 高级
BM4 34567890abcd 发散
BM5 4567890abcde 已更改

推送时采取的动作取决于每个书签的状态:

添加

推与 -B 会创造它

删除

推与 -B 将删除它

高级

推送将更新它

发散的

推与 -B 将更新它



推与 -B 将更新它

从推送行为来看,书签只存在于远程
存储库被视为 删除,即使它实际上是远程添加的。

如果有传出更改,则返回 0,否则返回 1。

选项:

-F, - 力量
即使目的地不相关也运行

-r,--rev
旨在包含在目标中的变更集

-n, - 新的先来
首先显示最新记录

-B, - 书签
比较书签

-b,- 分支
您想要推送的特定分支

-p, - 修补
显示补丁

-G, --git
使用 git 扩展差异格式

-l,- 限制
限制显示的更改数量

-M, --不合并
不显示合并

--统计 输出 diffstat 样式的更改摘要

-G, - 图形
显示修订版 DAG

- 风格
使用模板地图文件显示(已弃用)

-T,- 模板
用模板展示

-e,--ssh
指定要使用的 ssh 命令

--远程命令
指定要在远程端运行的 hg 命令

--不安全
不验证服务器证书(忽略 web.cacerts 配置)

-S, --子仓库
递归到子存储库

[+] 标记选项可以多次指定

别名:out

父母
显示工作目录或修订的父目录(已弃用):

hg 父母 [-r REV] [文件]

打印工作目录的父修订。 如果通过 -r/--rev 给出修订,则
将打印该修订的父级。 如果给出了文件参数,则在
上次更改文件的位置(在工作目录修订之前或
--rev 如果给定) 被打印。

此命令等效于:

hg log -r "p1()+p2()" 或
hg log -r "p1(REV)+p2(REV)" 或
hg log -r "max(::p1() and file(FILE))+max(::p2() and file(FILE))" 或
hg log -r "max(::p1(REV) and file(FILE))+max(::p2(REV) and file(FILE))"

我们 hg 摘要hg 帮助 调整 有关的信息。

成功返回 0。

选项:

-r,--rev
显示指定修订的父级

- 风格
使用模板地图文件显示(已弃用)

-T,- 模板
用模板展示

路径
显示远程存储库的别名:

hg 路径 [NAME]

显示符号路径名称 NAME 的定义。 如果没有给出名称,则显示所有的定义
可用名称。

选项 -q/--quiet 在搜索 NAME 时禁止所有输出并仅显示路径
列出所有定义时的名称。

路径名在配置文件的 [paths] 部分和
/etc/mercurial/hgrc. 如果在存储库中运行, .hg/hgrc 也被使用。

路径名称 默认默认推送 有特殊的意义。 当执行推或
拉操作,如果没有指定位置,它们将用作回退
命令行。 什么时候 默认推送 设置,它将用于推送和 默认 将会被使用
为拉; 否则 默认 用作两者的后备。 克隆存储库时,
克隆源写为 默认 in .hg/hgrc.

备注 默认默认推送 适用于所有入站(例如 hg ) 和出站
(例如 hg 即将离任, hg 邮箱地址hg )操作。

我们 hg 帮助 网址 获取更多信息.

成功返回 0。

选项:

-T,- 模板
显示模板(实验)


设置或显示当前阶段名称:

汞相 [-p|-d|-s] [-f] [-r] [REV...]

不带参数,显示当前修订的阶段名称。

使用 -p/--public、-d/--draft 或 -s/--secret 之一,更改相位值
指定的修订。

除非指定了 -f/--force, hg 不会将变更集从较低阶段移动到
更高的阶段。 阶段顺序如下:

公开 < 草稿 < 秘密

成功时返回 0,如果某些阶段无法更改,则返回 1。

(有关阶段概念的更多信息,请参见 hg 帮助 阶段.)

选项:

-p, - 民众
将变更集阶段设置为公开

-d, - 草案
将变更集阶段设置为草稿

-是的, - 秘密
将变更集阶段设置为秘密

-F, - 力量
允许向后移动边界

-r,--rev
目标修订

[+] 标记选项可以多次指定


从指定源拉取更改:

hg pull [-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [源]

将更改从远程存储库拉到本地存储库。

这会在指定路径或 URL 处查找存储库中的所有更改,并将它们添加到
本地存储库(当前存储库,除非指定了 -R)。 默认情况下,这不会
更新工作目录中的项目副本。

使用 hg 如果你想看看当时拉动会添加什么
发出了这个命令。 如果您随后决定将这些更改添加到存储库中,您应该
使用 hg -r X 哪里 X 是列出的最后一个变更集 hg .

如果省略 SOURCE,则将使用“默认”路径。 看 hg 帮助 网址 更多
信息。

成功返回 0,如果更新有未解析的文件,则返回 1。

选项:

-你, - 更新
如果已拉取变更集,则更新到新的分支头

-F, - 力量
即使远程存储库不相关也运行

-r,--rev
打算添加的远程变更集

-B,- 书签
要拉的书签

-b,- 分支
您想要拉取的特定分支

-e,--ssh
指定要使用的 ssh 命令

--远程命令
指定要在远程端运行的 hg 命令

--不安全
不验证服务器证书(忽略 web.cacerts 配置)

[+] 标记选项可以多次指定


将更改推送到指定的目的地:

hg Push [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [DEST]

将变更集从本地存储库推送到指定的目的地。

此操作与 pull 对称:它与目标中的 pull 相同
来自当前的存储库。

默认情况下,push 不允许在目的地创建新的头,因为多个
头会让人不清楚使用哪个头。 在这种情况下,建议
在推之前拉和合并。

如果要允许推送创建一个新的命名分支,请使用 --new-branch
出现在目的地。 这允许您只创建一个新分支而无需强制
其他变化。

注意 -f/--force 选项应格外小心,这将推送所有新的
所有分支的头,一个几乎总是会引起混乱的行动
合作者。

如果使用 -r/--rev,则指定的修订及其所有祖先将被推送到
远程存储库。

如果使用 -B/--bookmark,则指定的书签修订、其祖先和
书签将被推送到远程存储库。

请参阅 hg 帮助 网址 有关的重要细节 ssh:// 网址。 如果目的地是
省略,将使用默认路径。

如果推送成功则返回 0,如果没有推送则返回 1。

选项:

-F, - 力量
强推

-r,--rev
旨在包含在目标中的变更集

-B,- 书签
要推送的书签

-b,- 分支
您想要推送的特定分支

--新分支
允许推送一个新分支

-e,--ssh
指定要使用的 ssh 命令

--远程命令
指定要在远程端运行的 hg 命令

--不安全
不验证服务器证书(忽略 web.cacerts 配置)

[+] 标记选项可以多次指定

恢复
回滚中断的事务:

汞回收

从中断的提交或拉取中恢复。

此命令尝试在操作中断后修复存储库状态。 这应该
仅在 Mercurial 建议时才需要。

如果成功则返回 0,如果没有任何恢复或验证失败则返回 1。

去掉
在下一次提交时删除指定的文件:

hg 删除 [选项]... 文件...

安排指定的文件从当前分支中删除。

此命令计划在下一次提交时删除文件。 撤消删除
在此之前,请参阅 hg 还原. 要撤消添加的文件,请参阅 hg 忘记.

-A/--after 可以用来只删除已经删除的文件,-f/--force 可以
用于强制删除, -Af 可用于从下一个修订版中删除文件
而不会从工作目录中删除它们。

下表详细说明了针对不同文件状态(列)和
选项组合(行)。 文件状态为已添加 [A]、清洁 [C]、已修改 [M] 和
缺少 [!](据报道 hg 状态)。 操作是警告、删除(从分支)和
删除(从磁盘):

┌──────────┬────┬────┬────┬────┐
│选择/状态│ A │ C │ M │ ! │
├──────────┼────┼────┼────┼────┤
│无│ W │ RD │ W │ R │
├──────────┼────┼────┼────┼────┤
│-f │ R │ RD │ RD │ R │
├──────────┼────┼────┼────┼────┤
│-A │ W │ W │ W │ R │
├──────────┼────┼────┼────┼────┤
│-Af │ R │ R │ R │ R │
└──────────┴────┴────┴────┴────┘

备注 hg 去掉 从不从工作目录中删除处于已添加 [A] 状态的文件,而不是
即使 - 力量 已指定。

成功时返回 0,如果遇到任何警告,则返回 1。

选项:

-一种, - 后
记录删除丢失的文件

-F, - 力量
删除(和删除)文件,即使添加或修改

-S, --子仓库
递归到子存储库

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

[+] 标记选项可以多次指定

别名:rm

重命名
重命名文件; 相当于复制 + 删除:

hg 重命名 [选项]... SOURCE... DEST

将 dest 标记为来源的副本; 标记要删除的来源。 如果 dest 是目录,则复制
放在那个目录下。 如果 dest 是一个文件,则只能有一个源。

默认情况下,此命令复制工作文件中存在的文件内容
目录。 如果使用 -A/--after 调用,则记录操作,但不进行复制
执行。

此命令在下一次提交时生效。 要在此之前撤消重命名,请参阅 hg 还原.

成功时返回 0,遇到错误时返回 1。

选项:

-一种, - 后
记录已经发生的重命名

-F, - 力量
强行复制现有的托管文件

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-n, --试运行
不执行操作,只打印输出

[+] 标记选项可以多次指定

别名:move mv

解决
重做合并或设置/查看文件的合并状态:

hg 解析 [选项]... [文件]...

具有未解决冲突的合并通常是使用非交互式合并的结果
内部:合并 配置设置,或命令行合并工具,如 差异3. 决心
命令用于管理合并中涉及的文件,之后 hg 合并 已经运行,并且
before hg 承诺 运行(即工作目录必须有两个父目录)。 看 hg 帮助
合并工具 有关配置合并工具的信息。

可以通过以下方式使用 resolve 命令:

· hg 解决 [ - 工具 工具] 文件...: 尝试重新合并指定的文件,丢弃
任何以前的合并尝试。 对于已标记为的文件,不会执行重新合并
解决。 利用 --全部/-a 选择所有未解析的文件。 - 工具 可用于指定
用于给定文件的合并工具。 它覆盖 HGMERGE 环境变量和
你的配置文件。 以前的文件内容以 .orig 后缀。

· hg 解决 -m [文件]: 将文件标记为已解析(例如在手动解析后
修复文件)。 默认是标记所有未解析的文件。

· hg 解决 -u [文件]...: 将文件标记为未解析。 默认是标记所有已解决
文件。

· hg 解决 -l: 列出已经或仍然有冲突的文件。 在打印的列表中, U =
未解决和 R = 解决了。

注意 Mercurial 不允许您提交合并冲突未解决的文件。 你必须
使用 hg 解决 -m ... 在冲突合并后提交之前。

成功时返回 0,如果任何文件解析尝试失败,则返回 1。

选项:

-一种, - 全部
选择所有未解析的文件

-l, - 列表
列出需要合并的文件状态

-米, - 标记
将文件标记为已解决

-你, --取消标记
将文件标记为未解析

-n, - 无状态
隐藏状态前缀

-t,- 工具
指定合并工具

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-T,- 模板
显示模板(实验)

[+] 标记选项可以多次指定

还原
将文件恢复到它们的结帐状态:

hg 还原 [选项]... [-r REV] [名称]...

注意要检查较早的修订版,您应该使用 hg 更新 REV. 取消一个
未提交的合并(并丢失您的更改),使用 hg 更新 - 干净的 ..

没有指定修订,将指定的文件或目录恢复到它们的内容
在工作目录的父目录中。 这会将文件的内容恢复到
未修改状态和取消计划添加、删除、复制和重命名。 如果工作
目录有两个父目录,您必须明确指定一个修订版。

使用 -r/--rev 或 -d/--date 选项,将给定的文件或目录恢复到它们的
状态作为一个特定的修订。 因为 revert 不会改变工作目录
父母,这将导致这些文件看起来被修改。 这有助于“退出”
部分或全部较早的更改。 看 hg 退出 为相关方法。

修改后的文件在恢复前以 .orig 后缀保存。 要禁用这些备份,
使用 --no-backup。

我们 hg 帮助 日期 获取对 -d/--date 有效的格式列表。

我们 hg 帮助 退出 一种逆转早期变更集影响的方法。

成功返回 0。

选项:

-一种, - 全部
当没有给出参数时恢复所有更改

-d,- 日期
最高修订匹配日期

-r,--rev
恢复到指定的修订版

-C, --无备份
不保存文件的备份副本

-一世, - 交互的
交互式选择更改(实验)

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-n, --试运行
不执行操作,只打印输出

[+] 标记选项可以多次指定

回滚
回滚最后一个事务(危险)(已弃用):

汞回滚

请用 hg 承诺 - 修正 而不是回滚以纠正上次提交中的错误。

应谨慎使用此命令。 只有一级回滚,并且有
无法撤消回滚。 它也会恢复上次的dirstate
交易,丢失自那时以来的任何 dirstate 更改。 此命令不会改变
工作目录。

事务用于封装所有创建新命令的效果
变更集或将现有变更集传播到存储库中。

比如下面的命令是事务性的,它们的效果是可以滚动的
背部:

· 犯罪

· 进口

· 拉

·推送(以这个仓库为目标)

· 解绑

为避免永久性数据丢失,rollback 将拒绝回滚提交的事务,如果它
未检出。 使用 --force 覆盖此保护。

此命令不适用于公共存储库。 一旦更改可见
被其他用户拉,在本地回滚事务是无效的(其他人可能
已经拉动了更改)。 此外,可以与读者进行比赛
存储库; 例如,如果回滚,从存储库进行中的拉取可能会失败
执行。

成功返回 0,如果没有可用的回滚数据,则返回 1。

选项:

-n, --试运行
不执行操作,只打印输出

-F, - 力量
忽视安全措施


打印当前工作目录的根(顶部):

汞根

打印当前存储库的根目录。

成功返回 0。

服务
启动独立的网络服务器:

汞服务 [选项]...

启动本地 HTTP 存储库浏览器和拉取服务器。 您可以将其用于临时共享
和浏览存储库。 建议使用真实的网络服务器来服务
存放更长的时间。

请注意,服务器没有实现访问控制。 这意味着,通过
默认情况下,任何人都可以从服务器读取,默认情况下没有人可以写入。 设置
web.allow_push 选项 * 允许每个人推送到服务器。 你应该使用真正的
Web 服务器,如果您需要对用户进行身份验证。

默认情况下,服务器会将对 stdout 的访问和错误记录到 stderr。 使用
-A/--accesslog 和 -E/--errorlog 选项以记录到文件。

要让服务器选择一个空闲的端口号来监听,指定一个端口号 0; 在
在这种情况下,服务器将打印它使用的端口号。

成功返回 0。

选项:

-一种,--访问日志
要写入的访问日志文件的名称

-d, --守护进程
在后台运行服务器

--守护进程pipefds
由守护进程模式在内部使用

-和,--错误日志
要写入的错误日志文件的名称

-p,- 港口
监听端口(默认:8000)

-一种,- 地址
监听地址(默认:所有接口)

- 字首
服务的前缀路径(默认:服务器根)

-n,- 姓名
在网页中显示的名称(默认:工作目录)

--网络会议
hgweb 配置文件的名称(请参阅“hg help hgweb”)

--webdir-conf
hgweb 配置文件的名称(已弃用)

--pid 文件
要写入进程 ID 的文件名

--stdio
对于远程客户

--cmd服务器
对于远程客户

-t,--模板
要使用的网页模板

- 风格
要使用的模板样式

- 6, --ipv6
除 IPv6 外还使用 IPv4

- 证书
SSL证书文件

状态
在工作目录中显示更改的文件:

hg 状态 [选项]... [文件]...

显示存储库中文件的状态。 如果给出名称,则只有匹配的文件
显示。 干净或被忽略的文件或复制/移动操作的来源,不是
除非 -c/--clean、-i/--ignored、-C/--copies 或 -A/--all 被列出。 除非选项
给出了“仅显示...”的描述,使用了选项 -mardu。

除非明确要求,否则选项 -q/--quiet 隐藏未跟踪(未知和忽略)的文件
使用 -u/--unknown 或 -i/--ignored。

备注 hg 状态 如果权限已更改或合并,则可能看起来不同意 diff
已经发生了。 标准差异格式不报告权限更改和差异
仅报告相对于一个合并父级的更改。

如果给出了一个修订版,则将其用作基础修订版。 如果给出两次修订,
显示了它们之间的差异。 --change 选项也可以用作快捷方式
列出修订的第一个父修订文件的更改文件。

用于显示文件状态的代码是:

M = 修改
A = 添加
R = 移除
C = 干净
! = 丢失(被非 hg 命令删除,但仍被跟踪)
? = 未跟踪
我 = 忽略
= 前一个文件的来源(使用 --copies)

例子:

· 显示工作目录中相对于变更集的变化:

汞状态 --rev 9353

· 显示工作目录相对于当前目录的变化(见 hg 帮助
模式 想要查询更多的信息):

汞状态:

· 显示所有更改,包括现有更改集中的副本:

汞状态 --copies --change 9353

· 获取添加文件的 NUL 分隔列表,适用于 xargs:

汞状态 -an0

成功返回 0。

选项:

-一种, - 全部
显示所有文件的状态

-米, - 修改的
只显示修改过的文件

-一种, - 添加
只显示添加的文件

-r, --已删除
只显示删除的文件

-d, --已删除
仅显示已删除(但已跟踪)的文件

-C, - 干净的
只显示没有更改的文件

-你, - 未知
仅显示未知(未跟踪)文件

-一世, --忽略
只显示被忽略的文件

-n, - 无状态
隐藏状态前缀

-C, --副本
显示复制文件的来源

- 0, --打印0
用 NUL 结束文件名,用于 xargs

--rev
显示与修订的差异

- 改变
列出修订版的更改文件

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-S, --子仓库
递归到子存储库

-T,- 模板
显示模板(实验)

[+] 标记选项可以多次指定

别名:st

摘要
总结工作目录状态:

hg 摘要 [--remote]

这将生成工作目录状态的简要摘要,包括父目录、分支、
提交状态、阶段和可用更新。

使用 --remote 选项,这将检查传入和传出的默认路径
变化。 这可能很耗时。

成功返回 0。

选项:

--远程
检查推拉

别名:sum

行李牌
为当前或给定修订添加一个或多个标签:

hg 标签 [-f] [-l] [-m 文本] [-d 日期] [-u 用户] [-r 版本] 名称...

使用命名特定修订.

标签用于命名存储库的特定修订,对于
比较不同的修订,回到重要的早期版本或标记分支
点作为发布等。更改现有标签通常是不允许的; 使用 -f/--force
覆盖。

如果未给出修订,则使用工作目录的父目录。

为了便于标签的版本控制、分发和合并,它们被存储为
名为“.hgtags”的文件,其管理方式与其他项目文件类似,可以
必要时手工编辑。 这也意味着标记会创建一个新的提交。 文件
“.hg/localtags”用于本地标签(不在存储库之间共享)。

标签提交通常在分支的头部进行。 如果工作的父母
目录不是分支头, hg 行李牌 中止; 使用 -f/--force 强制标签提交到
基于非头部变更集。

我们 hg 帮助 日期 获取对 -d/--date 有效的格式列表。

由于在修订查找期间标记名称优先于分支名称,因此使用现有的
不鼓励将分支名称作为标签名称。

成功返回 0。

选项:

-F, - 力量
强制标记

-l, - 当地的
使标签本地化

-r,--rev
修改标签

- 消除
删除标签

-e, - 编辑
在提交消息上调用编辑器

-米,- 信息
使用文本作为提交消息

-d,- 日期
将指定日期记录为提交日期

-你,- 用户
将指定用户记录为提交者

标签
列出存储库标签:

汞标签

这列出了常规和本地标签。 当使用 -v/--verbose 开关时,第三个
为本地标签打印“本地”列。 当使用 -q/--quiet 开关时,只有
标签名称被打印出来。

成功返回 0。

选项:

-T,- 模板
显示模板(实验)

类型
显示最新版本(已弃用):

汞提示 [-p] [-g]

提示修订(通常简称为提示)是最近添加到
存储库(因此是最近更改的头)。

如果您刚刚进行了提交,则该提交将是提示。 如果你刚刚拉
来自另一个存储库的更改,该存储库的提示将成为当前提示。 这
“tip”标签是特殊的,不能重命名或分配给不同的变更集。

此命令已弃用,请使用 hg 元首 代替。

成功返回 0。

选项:

-p, - 修补
显示补丁

-G, --git
使用 git 扩展差异格式

- 风格
使用模板地图文件显示(已弃用)

-T,- 模板
用模板展示

解开
应用一个或多个更改组文件:

hg 解绑 [-u] 文件...

应用一个或多个由 bundle 命令生成的压缩变更组文件。

成功返回 0,如果更新有未解析的文件,则返回 1。

选项:

-你, - 更新
如果变更集未捆绑,则更新到新的分支负责人

更新
更新工作目录(或切换修订版):

hg 更新 [-c] [-C] [-d 日期] [[-r] 修订版]

将存储库的工作目录更新到指定的变更集。 如果没有变更集
指定,更新到当前命名分支的尖端并移动活动书签(参见
hg 帮助 书签).

更新将工作目录的父修订设置为指定的变更集(请参阅 hg
帮助 父母).

如果变更集不是工作目录的父目录的后代或祖先,则
更新中止。 使用 -c/--check 选项,检查工作目录
未提交的更改; 如果未找到,则将工作目录更新为指定的
变更集。

当工作目录包含未提交的更改时,以下规则适用:

1. 如果 -c/--check 和 -C/--clean 都没有指定,并且如果请求的变更集是一个
工作目录的父目录的祖先或后代,未提交的更改是
合并到请求的变更集中,合并的结果未提交。 如果
请求的变更集不是祖先或后代(也就是说,它在另一个
分支),更新被中止并保留未提交的更改。

2. 使用 -c/--check 选项,中止更新,未提交的更改
保留。

3. 使用 -C/--clean 选项,未提交的更改将被丢弃,工作目录
更新为请求的变更集。

要取消未提交的合并(并丢失更改),请使用 hg 更新 - 干净的 ..

使用 null 作为变更集删除工作目录(如 hg 克隆 -U).

如果您只想将一个文件恢复为旧版本,请使用 hg 还原 [-r 转] 您的姓名.

我们 hg 帮助 日期 获取对 -d/--date 有效的格式列表。

成功返回 0,如果有未解析的文件,则返回 1。

选项:

-C, - 干净的
丢弃未提交的更改(无备份)

-C, - 查看
如果没有未提交的更改,则跨分支更新

-d,- 日期
最高修订匹配日期

-r,--rev
调整

-t,- 工具
指定合并工具

别名: up checkout co

确认
验证存储库的完整性:

汞验证

验证当前存储库的完整性。

这将对存储库的完整性进行广泛的检查,验证哈希
以及变更日志、清单和跟踪文件中每个条目的校验和,以及
其交联和指数的完整性。

有关更多信息,请参阅 https://mercurial-scm.org/wiki/RepositoryCorruption
从存储库损坏中恢复。

成功时返回 0,遇到错误时返回 1。

版本
输出版本和版权信息:

汞版

输出版本和版权信息

日期 FORMATS


一些命令允许用户指定日期,例如:

· backout、commit、import、tag:指定提交日期。

· 记录、还原、更新:按日期选择修订。

许多日期格式都是有效的。 这里有些例子:

· 星期三 十二月 6 13:18:29 2006 (假设当地时区)

· 十二月 6 13:18 -0600 (假设年份,提供时间偏移)

· 十二月 6 13:18 UTC (UTC 和 GMT 是 +0000 的别名)

· 十二月 6 (午夜)

· 13:18 (今天假设)

· 3:39 (假设是凌晨 3 点 39 分)

· 3:39pm (15:39)

· 2006-12-06 13:18:29 (ISO 8601 格式)

· 2006-12-6 13:18

· 2006-12-6

· 12-6

· 12/6

· 12/6/6 (6 年 2006 月 XNUMX 日)

· 今晚 (午夜)

· 昨天 (午夜)

· 现在 - 现在

最后,还有 Mercurial 的内部格式:

· 1165411109 0 (6 年 13 月 18 日星期三 29:2006:XNUMX UTC)

这是日期的内部表示格式。 第一个数字是
自纪元以来的秒数(1970-01-01 00:00 UTC)。 第二个是本地的偏移量
时区,以 UTC 以西的秒数(如果时区在 UTC 以东,则为负数)。

log 命令也接受日期范围:

· <日期 - 在给定日期/时间或之前

· >日期 - 在给定的日期/时间或之后

· 日期 日期 - 一个日期范围,包括

· -天 - 在今天的给定天数内

DIFF FORMATS


Mercurial 用于显示文件的两个版本之间的更改的默认格式是
兼容 GNU diff 的统一格式,可以被 GNU patch 和许多
其他标准工具。

虽然这种标准格式通常就足够了,但它不会对以下信息进行编码:

· 可执行状态和其他权限位

·复制或重命名信息

· 二进制文件的变化

· 创建或删除空文件

Mercurial 还支持来自 git VCS 的扩展差异格式,它解决了这些问题
限制。 默认情况下不生成 git diff 格式,因为一些广泛使用的工具
还是不明白这个格式。

这意味着当从 Mercurial 存储库生成差异时(例如使用 hg 出口),
你应该小心文件复制和重命名或其他提到的事情
上面,因为当将标准差异应用到不同的存储库时,这个额外的
信息丢失。 Mercurial 的内部操作(如推和拉)不受影响
这样做,因为他们使用内部二进制格式来传达更改。

要使 Mercurial 生成 git 扩展差异格式,请使用 --git 选项可用于
许多命令,或者在配置文件的 [diff] 部分设置 'git = True'。 你
以这种格式导入差异或在 mq 中使用它们时不需要设置此选项
延期。

环境 变数


HG 'hg' 可执行文件的路径,在运行钩子、扩展或
外部工具。 如果未设置或为空,则这是 hg 可执行文件的名称(如果它被冻结),
或名为“hg”的可执行文件(带有 %PATHEXT% [默认为 COM/EXE/BAT/CMD]
Windows 上的扩展)被搜索。

编辑器
这是提交时要运行的编辑器的名称。 见编辑器。

(已弃用,使用配置文件)

基因编码
这会覆盖 Mercurial 检测到的默认语言环境设置。 这个设置是
用于转换数据,包括用户名、变更集描述、标签名称和
分支。 可以使用 --encoding 命令行选项覆盖此设置。

HGEN编码模式
这设置了 Mercurial 在转码时处理未知字符的行为
用户输入。 默认值是“strict”,如果不能,这会导致 Mercurial 中止
映射一个字符。 其他设置包括“替换”,它替换未知
字符和“忽略”,这会删除它们。 这个设置可以被覆盖
--encodingmode 命令行选项。

HGEN编码模棱两可
这设置了 Mercurial 处理具有“模糊”宽度的字符的行为,例如
带有东亚字体的重音拉丁字符。 默认情况下,Mercurial 假设
不明确的字符很窄,如果这样的字符,请将此变量设置为“宽”
导致格式问题。

合并
用于解决合并冲突的可执行文件。 程序将被执行
带有三个参数:本地文件、远程文件、祖先文件。

(已弃用,使用配置文件)

HGRC路径
用于搜索配置文件的文件或目录列表。 项目分隔符是
":" 在 Unix 上,";" 在 Windows 上。 如果未设置 HGRCPATH,平台默认搜索路径
用来。 如果为空,则仅读取当前存储库中的 .hg/hgrc。

对于 HGRCPATH 中的每个元素:

· 如果是目录,则添加所有以.rc结尾的文件

· 否则,将添加文件本身

平原
设置后,这将禁用任何可能更改 Mercurial 的配置设置
默认输出。 这包括编码、默认值、详细模式、调试模式、安静
模式、追溯和本地化。 这在编写脚本时很有用
Mercurial 面对现有的用户配置。

通过命令行标志或环境变量设置的等效选项不是
被覆盖。

HGPLAINEX 除外
这是启用 HGPLAIN 时要保留的以逗号分隔的功能列表。
目前支持以下值:

别号

不要删除别名。

i18n

保持国际化。

反义词

不要删除 revset 别名。

将 HGPLAINEXCEPT 设置为任何内容(甚至是空字符串)将启用普通模式。

用户 这是用作提交作者的字符串。 如果未设置,可用值
将按以下顺序考虑:

· HGUSER(已弃用)

· 来自 HGRCPATH 的配置文件

· 电子邮件

· 互动提示

· LOGNAME(与 @主机名 附加)

(已弃用,使用配置文件)

邮箱地址 可用作提交的作者; 见 HGUSER。

日志名称
可用作提交的作者; 见 HGUSER。

VISUAL 这是提交时使用的编辑器的名称。 见编辑器。

EDITOR 有时 Mercurial 需要在编辑器中打开一个文本文件供用户修改,
例如在编写提交消息时。 它使用的编辑器由
按顺序查看环境变量 HGEDITOR、VISUAL 和 EDITOR。
选择第一个非空的。 如果它们都为空,则编辑器默认为
“明智的编辑”。

路径
这被 P​​ython 用来查找导入的模块,可能需要设置
如果此 Mercurial 未在系统范围内安装,则适当。

使用 附加 特点


Mercurial 能够通过使用扩展来添加新功能。 扩展
可以添加新命令,向现有命令添加选项,更改默认行为
命令,或实现钩子。

要启用 Mercurial 附带的或 Python 搜索路径中的“foo”扩展,
在您的配置文件中为它创建一个条目,如下所示:

[扩展]
富 =

您还可以指定扩展的完整路径:

[扩展]
我的特征 = 〜/.hgext/myfeature.py

我们 hg 帮助 配置 有关配置文件的更多信息。

出于多种原因,默认情况下不会加载扩展程序:它们可以增加启动
高架; 它们可能仅用于高级用途; 他们可能提供潜在的
危险的能力(比如让你破坏或修改历史); 他们可能不是
准备好迎接黄金时段; 或者他们可能会改变股票 Mercurial 的一些通常行为。 它是
因此由用户根据需要激活扩展。

要明确禁用在更广泛范围的配置文件中启用的扩展,
在其路径前加上 !:

[扩展]
# 禁用驻留在/path/to/extension/bar.py 中的扩展栏
酒吧=!/path/to/extension/bar.py
# 同上,但没有为扩展 baz 提供路径
巴斯=!

禁用扩展:

ACL 用于控制存储库访问的钩子

黑盒子
将存储库事件记录到黑盒以进行调试

Bugzilla的
用于与 Bugzilla 错误跟踪器集成的钩子

检查员 擦除给定修订的文件内容

搅动 命令显示有关存储库历史的统计信息

克隆包
将预先生成的包广告为种子克隆

颜色 对某些命令的输出进行着色

兑换
将外部 VCS 存储库中的修订版导入 Mercurial

EOL 自动管理存储库文件中的换行符

扩展差异
允许外部程序比较修订的命令

事实
使用 factotum 进行 http 身份验证

GPG 签署和验证变更集的命令

华夏 用于与 CIA.vc 通知服务集成的钩子

g 以图形方式浏览存储库

突出
hgweb 的语法高亮显示(需要 Pygments)

历史编辑
交互式历史编辑

关键词
扩展跟踪文件中的关键字

大文件
跟踪大型二进制文件

mq 管理一堆补丁

通知 用于发送电子邮件推送通知的钩子

传呼机 使用外部寻呼机浏览命令输出

补丁炸弹
命令将变更集作为(一系列)补丁电子邮件发送

清除 命令从工作目录中删除未跟踪的文件

变基 命令将修订集移动到不同的祖先

记录 命令以交互方式选择提交/qrefresh 的更改

重新链接 在存储库克隆之间重新创建硬链接

方案
使用存储库群的快捷方式扩展方案

分享 在几个工作目录之间共享一个共同的历史

搁置 保存和恢复对工作目录的更改

剥离 从历史中剥离变更集及其后代

移植
从另一个分支移植变更集的命令

win32mbcs
允许使用编码有问题的 MBCS 路径

零配置
发现和通告本地网络上的存储库

指定 文件 集合


Mercurial 支持用于选择一组文件的函数式语言。

与其他文件模式一样,此模式类型由前缀“set:”指示。 语言
支持许多由中缀运算符连接的谓词。 括号可以是
用于分组。

文件名或模式等标识符必须用单引号或双引号引起来,如果
它们包含外部字符 [.*{}[]?/\_a-zA-Z0-9\x80-\xff] 或者如果它们匹配其中之一
预定义的谓词。 这通常适用于除 globs 和
谓词的参数。

特殊字符可以通过转义在引用标识符中使用,例如, \n is
解释为换行符。 为了防止它们被解释,字符串可以被前缀
r,例如 r'...'.

有一个前缀运算符:

不能 x

不在 x 中的文件。 简写是 ! x.

这些是受支持的中缀运算符:

x y

x 和 y 中文件的交集。 简写是 x & y.

x or y

x 和 y 中文件的并集。 有两种可选的简短形式: x | yx +
y.

x - y

x 中的文件但不在 y 中。

支持以下谓词:

添加()

根据添加的文件 hg 状态.

二进制()

看起来是二进制的文件(包含 NUL 字节)。

清洁()

干净的文件根据 hg 状态.

复制()

记录为正在复制的文件。

删除()

别名 失踪().

编码(名称)

文件可以使用给定的字符编码成功解码。 未必
对 ASCII 和 UTF-8 以外的编码很有用。

eol(风格)

文件包含给定样式(dos、unix、mac)的换行符。 二进制文件是
排除,具有混合行尾的文件匹配多种样式。

exec()

标记为可执行文件的文件。

grep(正则表达式)

文件包含给定的正则表达式。

忽略()

与活动 .hgignore 模式匹配的文件。

忽略()

被忽略的文件 hg 状态. 只有在以下情况下才会考虑这些文件
使用了这个谓词。

失踪()

根据丢失的文件 hg 状态.

修改的()

修改后的文件 hg 状态.

便携的()

具有可移植名称的文件。 (这不包括带大小写的文件名
碰撞。)

移除()

根据删除的文件 hg 状态.

解决()

标记为已解决的文件 hg 解决 -l.

大小(表达式)

文件大小匹配给定的表达式。 例子:

· 1k(文件从 1024 到 2047 字节)

· < 20k(小于 20480 字节的文件)

· >= .5MB(文件至少 524288 字节)

· 4k - 1MB(文件从 4096 字节到 1048576 字节)

子仓库([模式])

路径与给定模式匹配的子存储库。

符号链接()

标记为符号链接的文件。

未知()

根据未知文件 hg 状态. 只有在以下情况下才会考虑这些文件
使用了这个谓词。

未解决()

被标记为未解析的文件 hg 解决 -l.

一些示例查询:

· 显示工作目录中看似二进制的文件的状态:

hg status -A "set:binary()"

· 忘记 .hgignore 中但已经被跟踪的文件:

hg 忘记“set:hgignore() 而不是忽略()”

· 查找包含字符串的文本文件:

hg 文件“设置:grep的(魔术)而不是二进制()”

· 查找非标准编码的 C 文件:

hg 文件“设置:**.c 而不是编码('UTF-8')”

· 恢复大型二进制文件的副本:

hg 还原“设置:复制()和二进制()和大小('> 1M')”

· 删除 foo.lst 中列出的包含字母 a 或 b 的文件:

hg 删除 "set: 'listfile:foo.lst' and (**a* or **b*)"

参见 hg 帮助 模式.


祖先
可以从一个完整的父变更集链访问的任何变更集
给定的变更集。 更准确地说,变更集的祖先可以由两个
属性:变更集的父级是祖先,而祖先的父级是
一个祖先。 另见:“后代”。

书签
书签是指向某些在提交时移动的提交的指针。 他们是
类似于标签,因为可以在所有地方使用书签名称
Mercurial 需要一个变更集 ID,例如, hg 更新. 与标签不同,书签会移动
当你提交时。

书签可以重命名、复制和删除。 书签是本地的,除非它们是
在存储库之间显式推送或拉取。 推拉书签
允许您与分支上的其他人协作,而无需创建命名分支。

分支机构 (名词)从不是头部的父级创建的子变更集。
这些被称为拓扑分支,请参阅“分支,拓扑”。 如果一个
拓扑分支被命名,它成为一个命名分支。 如果拓扑分支是
没有命名,它成为一个匿名分支。 请参阅“分支,匿名”和“分支,
名为'。

当更改从远程拉取或推送到远程时,可能会创建分支
存储库,因为这些操作可能会创建新的头。 注意术语
也可以非正式地使用分支来描述一个开发过程,其中
某些开发是独立于其他开发完成的。 这是有时
使用命名分支显式完成,但也可以在本地完成,使用
书签或克隆和匿名分支。

示例:“实验分支。”

(动词)创建子变更集的操作,导致其父变更集
不止一个孩子。

示例:“我将在 X 分行。”

分支, 匿名
每次从不是 head 的父级创建新的子变更集时,
分支的名称没有改变,一个新的匿名分支被创建。

分支, 关闭
一个已命名的分支,其分支负责人已全部关闭。

分支, 默认
先前未分配名称时分配给变更集的分支。

分支机构
见“头,分”。

分支, 不活跃
如果一个命名分支没有拓扑头,它被认为是不活动的。 作为
例如,一个功能分支在合并到默认分支时变为非活动状态
分支。 这 hg 分支机构 命令默认显示非活动分支,尽管它们可以
被隐藏 hg 分支机构 - 积极的.

注意:这个概念已被弃用,因为它太隐含了。 分支机构现在应该
使用显式关闭 hg 承诺 --关闭分支 当不再需要它们时。

分支, 命名
具有相同分支名称的变更集的集合。 默认情况下,孩子的
命名分支中的变更集属于同一个命名分支。 一个孩子可以
明确分配给不同的分支。 看 hg 帮助 , hg 帮助 分支机构
hg 承诺 --关闭分支 有关管理分支机构的更多信息。

命名分支可以被认为是一种命名空间,划分集合
将存储库包含到不相交子集的集合中的变更集。 一个
命名分支不一定是拓扑分支。 如果一个新的命名分支是
从另一个命名分支或默认分支的头部创建,但没有
进一步的变更集被添加到前一个分支,然后是前一个分支
将只是名义上的一个分支。

分支机构 类型
请参阅“提示,分支”。

分支, 拓扑
每次从不是 head 的父级创建新的子变更集时,都会有一个新的子变更集
创建拓扑分支。 如果一个拓扑分支被命名,它就变成了一个命名的
分支。 如果一个拓扑分支没有被命名,它就变成了一个匿名分支
当前的,可能是默认的,分支。

更新日志
按照将变更集添加到存储库的顺序记录变更集。
这包括详细信息,例如变更集 ID、作者、提交消息、日期和列表
更改的文件。

变更集
用于记录更改的存储库状态的快照。

变更集, 孩子
父变更集的反面:如果 P 是 C 的父级,则 C 是 P 的子级。
变更集可能具有的子项数量没有限制。

变更集 id
唯一标识变更集的 SHA-1 哈希。 它可以表示为
一个“长”的 40 位十六进制数字串,或一个“短”的 12 位十六进制数字串。

变更集, 合并
有两个父母的变更集。 提交合并时会发生这种情况。

变更集,
子变更集所基于的修订。 具体来说,父变更集
变更集 C 是一个变更集,其节点在 DAG 中紧跟在 C 之前。
变更集最多有两个父级。

结算
(名词)正在更新到特定版本的工作目录。 这种用途应该
可能会尽可能避免,因为变更集比
在这种情况下结帐。

示例:“我正在使用结帐 X。”

(动词)将工作目录更新为特定的变更集。 看 hg 帮助 更新.

示例:“我要检查变更集 X。”

儿童 变更
请参阅“变更集,子项”。

关闭 变更
参见“头部,封闭的分支”。

闭馆
参见“分行,已关闭”。

克隆 (名词)存储库的完整或部分副本。 部分克隆必须在
版本及其祖先的形式。

示例:“您的克隆是最新的吗?”

(动词)创建克隆的过程,使用 hg 克隆.

示例:“我要克隆存储库。”

闭馆
参见“头部,封闭的分支”。

承诺 (名词)变更集的同义词。

示例:“您最近提交的错误是否已修复?”

(动词)将更改记录到存储库的行为。 当文件在一个
工作目录,Mercurial 发现提交的文件和
他们的父变更集,在存储库中创建一个新的变更集。

示例:“您现在应该提交这些更改。”

术语变更集的常见缩写。

DAG 分布式版本控制系统 (DVCS) 的变更集存储库可以是
描述为有向无环图 (DAG),由节点和边组成,其中
节点对应于变更集,边暗示父 -> 子关系。 这
图形可以通过图形工具进行可视化,例如 hg 日志 - 图形. 在 Mercurial 中,
DAG 受限于孩子最多有两个父母的要求。

已过时
从文档中删除的功能,但没有计划删除。

默认
请参阅“分支,默认”。

后裔
来自给定的子变更集链可以访问的任何变更集
变更集。 更准确地说,变更集的后代可以由两个
属性:变更集的孩子是后代,而后代的孩子
是后代。 另见:“祖先”。

变化 (名词)两个文件的内容和属性的区别
变更集或变更集和当前工作目录。 区别在于
通常以称为“差异”或“补丁”的标准形式表示。 “git 差异”
当更改包括复制、重命名或更改文件时使用格式
属性,没有一个可以用经典的“diff”和“patch”来表示/处理。

示例:“您在差异中看到我的更正了吗?”

(动词)区分两个变更集是创建差异或补丁的操作。

示例:“如果您使用变更集 X 进行比较,您就会明白我的意思。”

目录, 加工
工作目录表示 Mercurial 跟踪的文件的状态,即
将记录在下一次提交中。 工作目录最初对应于
现有变更集的快照,称为工作的父级
目录。 请参阅“父级,工作目录”。 状态可以通过更改来修改
手动或通过合并引入的文件。 存储库元数据存在于
工作目录中的 .hg 目录。

草案 草稿阶段的变更集尚未与发布存储库共享,并且
因此可以通过历史修改扩展安全地更改。 看 hg 帮助 阶段.

实验
以后可能会更改或删除的功能。

图表 见 DAG 和 hg 日志 - 图形.

头部 术语“头”可用于指代分支头或存储库头,
视上下文而定。 具体参见“主管、分支”和“主管、存储库”
定义。

Heads 是开发通常发生的地方,并且是通常的目标
更新和合并操作。

头,
在同一个命名分支上没有后代的变更集。

头, 关闭
将头部标记为不再有趣的变更集。 封闭的头是没有
不再列出 hg 元首. 当一个分支的所有头都被关闭时,它被认为是关闭的
已关闭,因此未被列出 hg 分支机构.

可以通过提交新的变更集作为
将头部标记为关闭的变更集。

头, 知识库
尚未闭合的拓扑头。

头, 拓扑
存储库中没有子项的变更集。

历史, 一成不变
一旦提交,变更集就不能更改。 似乎发生变化的扩展
历史实际上创建了新的变更集来替换现有的变更集,然后销毁
旧的变更集。 在公共存储库中这样做可能会导致旧的变更集
被重新引入存储库。

历史, 重写
存储库中的变更集是不可变的。 但是,Mercurial 的扩展可以
用于更改存储库,通常以保留变更集的方式
内容。

不可变的 历史
请参阅“历史,不可变”。

合并 变更
请参阅“变更集,合并”。

舱单
每个变更集都有一个清单,它是被跟踪的文件列表
变更集。

合并 用于汇集不同的工作分支。 当您更新到变更集时
然后合并另一个变更集,你带来了后一个变更集的历史
进入你的工作目录。 一旦冲突得到解决(并标记),这个合并
可以作为合并变更集提交,将 DAG 中的两个分支合并在一起。

命名
参见“分支,命名”。

变更
空的变更集。 它是新初始化的存储库的父状态,并且
没有检出修订的存储库。 因此它是根变更集的父级
以及合并无关变更集时的有效祖先。 可以指定
别名 'null' 或变更集 ID '000000000000'。

父母 请参阅“变更集,父项”。

父母 变更
请参阅“变更集,父项”。

父母 加工 目录
工作目录的父目录反映了一个虚拟修订版,它是
变更集(或两个带有未提交合并的变更集)显示在 hg 父母。 这
hg 更新. 查看工作目录父目录的其他命令是
hg 摘要hg id. 可以通过别名“.”指定。

打补丁 (名词)差异运算的产物。

例如:“我已经把我的补丁发给你了。”

(动词)使用补丁文件将一个变更集转换为另一个变更集的过程。

示例:“您将需要修补该修订版。”

每个变更集的状态跟踪变更集已经或应该如何共享。 看
hg 帮助 阶段.

公共 公共阶段的变更集已与发布存储库共享,并且
因此被认为是不可变的。 看 hg 帮助 阶段.

远程存储库中不在本地的变更集的操作
存储库被带入本地存储库。 注意这个操作没有
特殊参数只更新存储库,它不会更新存储库中的文件
工作目录。 看 hg 帮助 .

本地存储库中不在远程存储库中的变更集的操作
存储库发送到远程存储库。 注意这个操作只添加
已在本地提交到远程存储库的变更集。 未承诺
不发送更改。 看 hg 帮助 .

存储库
描述文件集合的所有记录状态的元数据。 每个记录
状态由变更集表示。 通常(但并非总是)找到存储库
,在 .hg 工作目录的子目录。 任何记录状态都可以重新创建
通过将工作目录“更新”为特定的变更集。

存储库
请参阅“负责人,存储库”。

调整
某个时间点的存储库状态。 早期版本可以更新
通过使用 hg 更新. 另见“修订号”; 另请参阅“变更集”。

调整
此整数唯一标识特定存储库中的变更集。 它
表示将变更集添加到存储库的顺序,从
修订号 0。请注意,每个克隆的修订号可能不同
一个存储库。 要在不同克隆之间唯一标识变更集,请参阅
'变更集 ID'。

转播日志 Mercurial 使用的历史存储机制。 它是一种增量编码形式,具有
偶尔对数据进行全面修订,然后是每次连续修订的增量。 它
包括数据和指向数据的索引。

重写 历史
参见“历史,重写”。

Root 只有空变更集作为其父级的变更集。 大多数存储库都有
只有一个根变更集。

秘密 秘密阶段的变更集不能通过推、拉或克隆共享。 看 hg
帮助 阶段.

标签 给变更集的替代名称。 标签可以用在所有地方
Mercurial 需要一个变更集 ID,例如, hg 更新. 标签的创建是
存储在历史记录中,因此将使用推送自动与其他人共享
和拉。

Tips: 具有最高修订号的变更集。 这是最近的变更集
添加到存储库中。

小费,
具有最高修订号的给定分支的负责人。 当分支名称是
用作修订标识符,它指的是分支提示。 另见“分支,
头'。 请注意,因为不同版本库中的修订号可能不同
克隆,分支提示在不同的克隆存储库中可能不同。

更新 (名词)变更集的另一个同义词。

示例:“我已推送更新。”

(动词)该术语通常用于描述更新工作状态
目录到特定变更集的目录。 看 hg 帮助 更新.

示例:“您应该更新。”

居里 目录
请参阅“目录,工作”。

居里 目录
请参阅“父级,工作目录”。

句法 用于 水银 忽略 FILES


简介
Mercurial 系统使用一个名为 .hgignore 在存储库的根目录中
在搜索当前未跟踪的文件时控制其行为。

产品描述
Mercurial 存储库的工作目录通常包含不应包含的文件
被 Mercurial 跟踪。 这些包括由编辑器和构建产品创建的备份文件
由编译器创建。 这些文件可以通过将它们列在一个 .hgignore 文件
工作目录的根目录。 这 .hgignore 文件必须手动创建。 它是
通常置于版本控制之下,以便设置将传播到其他
具有推拉功能的存储库。

如果未跟踪文件的路径相对于存储库根目录或任何
该路径的前缀路径,与中的任何模式匹配 .hgignore.

例如,假设我们有一个未跟踪的文件, 文件.ca/b/文件.c 在我们的存储库中。
Mercurial 会忽略 文件.c 如果有任何模式 .hgignore 火柴 a/b/文件.c, a / b or a.

此外,一个 Mercurial 配置文件可以引用一组 per-user 或 global
忽略文件。 见 忽略 上的配置键 [用户界面] 部分 hg 帮助 配置
有关如何配置这些文件的详细信息。

为了控制 Mercurial 对其管理的文件的处理,许多命令支持 -I
-X 选项; 看 hg 帮助 hg 帮助 模式 了解详情。

已经被跟踪的文件不受 .hgignore 的影响,即使它们出现在
.hgignore。 未跟踪的文件 X 可以显式添加 hg X, 即使 X 是
被 .hgignore 中的模式排除。

句法
忽略文件是一个纯文本文件,由一系列模式组成,每个模式有一个模式
线。 空行被跳过。 这 # 字符被视为注释字符,并且
\ 字符被视为转义字符。

Mercurial 支持多种模式语法。 使用的默认语法是 Python/Perl 风格
常用表达。

要更改使用的语法,请使用以下形式的一行:

语法:名称

哪里 您的姓名 是以下之一:

正则表达式

正则表达式,Python/Perl 语法。

水珠

壳式球体。

解析所有跟随的模式时,所选语法保持有效,直到另一个
选择了语法。

glob 和 regexp 模式都没有根。 表单的全局语法模式 *。C
匹配一个以 .c 在任何目录中,以及形式的正则表达式模式 \.c$ 会做
相同。 要根植正则表达式模式,请以 ^.

通过添加子目录可以有自己的 .hgignore 设置
子包含:路径/到/子目录/.hgignore 到根 .hgignore。 看 hg 帮助 模式
详细信息 子包括:包括:.

注释 中指定的模式除外 .hgignore 总是扎根。 请参见 hg 帮助
模式 了解详情。

例如:
这是一个示例忽略文件。

# 使用全局语法。
语法:glob

*.elc
*.pyc
*~

# 切换到正则表达式语法。
语法:正则表达式
^\.pc/

配置 环球网


Mercurial 的内部 Web 服务器 hgweb 可以服务于单个存储库或一棵树
存储库。 在第二种情况下,可以使用定义存储库路径和全局选项
一个专用的配置文件 hg 服务, hgweb.wsgi, hgweb.cgihgweb.fcgi.

此文件使用与其他 Mercurial 配置文件相同的语法,但仅识别
以下部分:

· 网络

· 路径

· 收藏

卷筒纸 选项在 hg 帮助 配置.

路径 部分将 URL 路径映射到文件系统中存储库的路径。 hgweb 将
不直接公开文件系统 - 只能发布 Mercurial 存储库,并且只能
根据配置。

左侧是 URL 中的路径。 请注意, hgweb 保留子​​路径,如 or
文件, 尝试为嵌套存储库使用不同的名称以避免混淆效果。

右侧是文件系统中的路径。 如果指定的路径以 * or **
文件系统将递归搜索低于该点的存储库。 和 * it
不会递归到它找到的存储库中(除了 .hg/补丁)。 同 ** 它会
还可以在存储库工作目录中搜索并可能找到子存储库。

在这个例子中:

[路径]
/项目/a = /srv/tmprepos/a
/项目/b = c:/repos/b
/ = /srv/回购/*
/用户/鲍勃 = /家/鲍勃/存储库/ **

· 前两个条目使不同目录中的两个存储库出现在
Web 界面中的同一目录

· 第三个条目将发布在 /srv/回购/,为
实例存储库 /srv/回购/quux/ 将显示为 http://server/quux/

·第四个条目将同时发布 http://server/user/bob/quux/
http://server/user/bob/quux/testsubrepo/

收藏 部分已弃用并已被取代 路径.

网址 相当常见 参数
每个存储库下的 URL 具有以下形式 /{命令}[/{参数}] 哪里 {命令}
表示命令或处理程序的名称和 {参数} 代表任意数量
该命令的附加 URL 参数。

Web 服务器具有与之关联的默认样式。 样式映射到命名的集合
模板。 每个模板都用于呈现特定的数据片段,例如变更集
或差异。

当前请求的样式可以通过两种方式覆盖。 首先,如果 {命令}
包含一个连字符 (-),连字符前的文本定义样式。 例如,
/原子日志 将呈现 日志 命令处理程序与 原子 风格。 第二种设置方式
风格是 样式 查询字符串参数。 例如, /log?style=原子。 该
带连字符的 URL 参数是首选。

并非所有模板都适用于所有样式。 尝试使用不符合的样式
定义所有模板可能会导致呈现页面错误。

许多命令需要一个 {修订} 网址参数。 这定义了要操作的变更集。
这通常被指定为完整 12 的简短的 40 位十六进制缩写
字符唯一修订标识符。 但是,由描述的任何值 hg 帮助 修订
通常有效。

命令 网址
可以使用以下 Web 命令及其 URL:

/注释/{修订}/{路径}
显示文件中每一行的变更集信息。

文件注释 模板被渲染。

/archive/{修订版}.{格式}[/{路径}]
获取存储库内容的存档。

存档的内容和类型由 URL 路径参数定义。 格式
要生成的归档类型的文件扩展名。 例如 拉链 or tar.bz2. 不是所有存档
您的服务器配置可能允许类型。

可选的 URL 参数控制要包含在存档中的内容。 如果省略,
指定修订版中的每个文件都存在于存档中。 如果包含,则只有
指定文件或指定目录的内容将包含在存档中。

此处理程序不使用模板。 生成原始的二进制内容。

/书签
显示有关书签的信息。

不接受任何论据。

书签 模板被渲染。

/分支
显示有关分支的信息。

所有已知的分支都包含在输出中,甚至是关闭的分支。

不接受任何论据。

分支机构 模板被渲染。

/changelog[/{修订}]
显示有关多个变更集的信息。

如果可选 调整 URL 参数不存在,有关所有变更集的信息开始
at 类型 将被渲染。 如果 调整 存在参数,将显示变更集
从指定的修订版开始。

If 调整 缺席, 可以定义查询字符串参数。 这将执行一个
搜索变更集。

的论点 可以是单个修订、修订集或文字关键字
在变更集数据中搜索(相当于 hg 日志 -k).

转数 查询字符串参数定义了要呈现的最大变更集数。

对于非搜索, 更新日志 模板将被呈现。

/变更集[/{修订}]
显示有关单个变更集的信息。

URL 路径参数是要显示的变更集标识符。 看 hg 帮助 修订
可能的值。 如果未定义,则 类型 将显示变更集。

变更 模板被渲染。 的内容 更改标签, 变更集书签,
文件节点链接, 文件链接, 很多与 diffs 相关的模板都可以用来
产生输出。

/比较/{修订}/{路径}
显示对文件所做更改的旧版本和新版本之间的比较
特别修订。

这类似于 差异 处理程序。 但是,这种形式具有拆分或并排的特点
diff 而不是统一的 diff。

上下文 查询字符串参数可用于控制差异中的上下文行。

文件比较 模板被渲染。

/diff/{修订}/{路径}
显示文件在特定提交中如何更改。

文件差异 模板被渲染。

此处理程序注册在 /差异/文件差异 路径。 /差异 在使用
现代代码。

/文件/{修订}[/{路径}]
显示有关存储库中目录或文件的信息。

有关的信息 作为 URL 参数给出的将被呈现。

If 是一个目录,将呈现有关该目录中条目的信息。
这种形式相当于 舱单 处理程序。

If 是一个文件,有关该文件的信息将通过 文件修订
模板。

If 未定义,将呈现有关根目录的信息。

/diff/{修订}/{路径}
显示文件在特定提交中如何更改。

文件差异 模板被渲染。

此处理程序注册在 /差异/文件差异 路径。 /差异 在使用
现代代码。

/文件日志/{修订}/{路径}
显示有关存储库中文件历史记录的信息。

转数 可以定义查询字符串参数来控制最大条目数
以显示。

文件日志 模板将被呈现。

/graph[/{修订版}]
显示有关存储库图形拓扑的信息。

此处理程序呈现的信息可用于创建
存储库拓扑。

调整 URL 参数控制起始变更集。

转数 查询字符串参数可以定义显示信息的变更集数量
为。

此处理程序将呈现 图形 模板。

/帮助[/{主题}]
呈现帮助文档。

这个 web 命令大致相当于 hg 帮助。 如果一个 主题 已定义,该帮助主题
将被渲染。 如果没有,将呈现可用帮助主题的索引。

帮助 请求主题帮助时将呈现模板。 帮助主题
为帮助主题的索引呈现。

/日志[/{修订}[/{路径}]]
显示存储库或文件历史记录。

对于表单的 URL /log/{修订}, 从指定位置开始的变更集列表
显示变更集标识符。 如果 {修订} 未定义,默认为 类型. 这个表格
相当于 更新日志 处理程序。

对于表单的 URL /log/{修订}/{文件},特定文件的历史记录将是
显示。 这种形式相当于 文件日志 处理程序。

/清单[/{修订版}[/{路径}]]
显示有关目录的信息。

如果省略 URL 路径参数,则有关根目录的信息 类型
将显示变更集。

因为这个处理程序只能显示目录的信息,所以建议使用
文件 处理程序,因为它可以处理目录和文件。

舱单 将为此处理程序呈现模板。

/变更集[/{修订}]
显示有关单个变更集的信息。

URL 路径参数是要显示的变更集标识符。 看 hg 帮助 修订
可能的值。 如果未定义,则 类型 将显示变更集。

变更 模板被渲染。 的内容 更改标签, 变更集书签,
文件节点链接, 文件链接, 很多与 diffs 相关的模板都可以用来
产生输出。

/短日志
显示关于一组变更集的基本信息。

这接受与 更新日志 处理程序。 唯一的区别是
短日志 将呈现模板而不是 更新日志 模板。

/概括
显示存储库状态的摘要。

关于最新的变更集、书签、标签和分支的信息被这个捕获
处理程序。

摘要 模板被渲染。

/标签
显示有关标签的信息。

不接受任何论据。

标签 模板被渲染。

技术 实施 主题


捆绑
用于交换存储库数据的容器

变更组
revlog 数据的表示

转速日志
修订存储机制

合并 工具


合并文件 Mercurial 使用合并工具。

合并工具将文件的两个不同版本合并为一个合并文件。 合并工具是
给定两个文件和两个文件版本的最大共同祖先,所以他们可以
确定在两个分支上所做的更改。

合并工具用于 hg 解决, hg 合并, hg 更新, hg 退出 与几种
扩展。

通常,合并工具会尝试通过合并所有文件来自动协调文件
在两个不同的演化过程中分别发生的非重叠变化
相同的初始基本文件。 此外,一些交互式合并程序可以更轻松地
手动解决冲突的合并,以图形方式,或通过插入一些
冲突标记。 Mercurial 不包括任何交互式合并程序,但依赖于
外部工具。

可提供 合并 工具
外部合并工具及其属性在合并工具配置中配置
部分 - 见 高铁(5) - 但它们通常只能由它们的可执行文件命名。

如果可以在系统上找到合并工具的可执行文件并且
可以处理合并。 如果可执行文件是绝对或相对可执行文件,则会找到该可执行文件
路径或可执行搜索路径中的应用程序名称。 该工具假定为
如果文件是符号链接,如果它可以处理符号链接,则能够处理合并,如果它可以
如果文件是二进制文件,则处理二进制文件,如果工具需要 GUI 可用
图形用户界面。

有一些内部合并工具可以使用。 内部合并工具有:

:倾倒

创建要合并的文件的三个版本,包含本地的内容,
其他和基础。 然后可以使用这些文件手动执行合并。 如果
要合并的文件被命名 一个.txt, 这些文件将相应地命名
一个.txt.local, a.txt.其他一个.txt.base 它们将被放置在同一个
目录为 一个.txt.

:失败

它不会尝试合并在两个分支上修改过的文件,而是标记
他们作为未解决的。 必须使用 resolve 命令来解决这些冲突。

:当地的

使用文件的本地版本作为合并版本。

:合并

使用内部非交互式简单合并算法来合并文件。 它会
如果存在任何冲突并在部分合并的文件中留下标记,则失败。
标记将有两个部分,一个用于合并的每一侧。

:合并本地

喜欢 :merge,但以非交互方式解决所有冲突以支持本地
的变化。

:合并其他

喜欢 :merge,但以非交互方式解决所有冲突以支持其他冲突
的变化。

:合并3

使用内部非交互式简单合并算法来合并文件。 它会
如果存在任何冲突并在部分合并的文件中留下标记,则失败。
标记将包含三个部分,一个来自合并的每一侧,一个用于合并
基础内容。

:其他

使用其他版本的文件作为合并版本。

:迅速的

询问用户将哪个本地版本或其他版本保留为合并
版。

:标签合并

使用内部标签合并算法(实验性)。

:联盟

使用内部非交互式简单合并算法来合并文件。 它会
在冲突地区使用左右两侧。 没有插入标记。

内部工具始终可用,不需要 GUI,但默认情况下不需要
处理符号链接或二进制文件。

选择 a 合并 工具
Mercurial 在决定使用哪个合并工具时使用这些规则:

1. 如果使用 --tool 选项指定了工具来合并或解析,则使用该工具。
如果是merge-tools配置中某个工具的名称,则其配置为
用过的。 否则,指定的工具必须可由 shell 执行。

2。 如果 合并 环境变量存在,它的值被使用并且必须是
由 shell 执行。

3. 如果要合并的文件的文件名与
merge-patterns 配置部分,第一个可用的合并工具对应一个
使用匹配模式。 在这里,合并工具的二进制功能不是
考虑过的。

4.如果设置了ui.merge,接下来会考虑。 如果该值不是 a 的名称
配置的工具,使用指定的值,并且必须由 shell 执行。
否则,如果命名工具可用,则使用它。

5. 如果合并工具配置部分中存在任何可用的合并工具,则
使用优先级最高的。

6. 如果一个程序名为 合并 可以在系统上找到,它被使用 - 但它会被
默认不用于符号链接和二进制文件。

7. 如果要合并的文件不是二进制文件,也不是符号链接,那么内部 :合并 is
用过的。

8.文件合并失败,必须在commit前解决。

注意 选择合并程序后,Mercurial 默认会尝试合并
文件首先使用简单的合并算法。 只有当它没有成功时,因为
冲突更改 Mercurial 将实际执行合并程序。 要或不要
首先使用简单合并算法可以通过premerge设置来控制
合并工具。 Premerge 默认启用,除非文件是二进制文件或
符号链接。

请参阅合并工具和 ui 部分 高铁(5)关于merge的配置细节
工具。

指定 修订版


当 Mercurial 接受多个修订时,可以单独指定它们,或者
作为拓扑连续范围提供,由“:”字符分隔。

范围表示法的语法是 [BEGIN]:[END],其中 BEGIN 和 END 是修订版
身份标识。 BEGIN 和 END 都是可选的。 如果未指定 BEGIN,则默认为
修订号 0。如果未指定 END,则默认为提示。 范围“:”因此
表示“所有修订版”。

如果 BEGIN 大于 END,则以相反的顺序处理修订。

范围充当闭合区间。 这意味着 3:5 的范围给出 3、4 和 5。
同样,9:6 的范围给出 9、8、7 和 6。

文件 您的姓名 模式


Mercurial 接受多种符号来一次识别一个或多个文件。

默认情况下,Mercurial 将文件名视为 shell 样式的扩展 glob 模式。

必须明确指定替代模式符号。

注意 指定的模式 .hgignore 没有扎根。 请参见 hg 帮助 忽略
细节。

要使用没有任何模式匹配的普通路径名,请以 路径:. 这些路径
名称必须从当前存储库根目录开始完全匹配。

要使用扩展的 glob,请以 球体:. Globs 植根于当前
目录; 一个球体,例如 *。C 只会匹配当前目录中以结尾的文件
.c.

支持的 glob 语法扩展是 ** 匹配路径分隔符的任何字符串和
{a,b} 意思是“a 或 b”。

要使用 Perl/Python 正则表达式,请以 回覆:. 正则表达式模式匹配
锚定在存储库的根目录。

要从文件中读取名称模式,请使用 列表文件: or 列表文件0:. 后者期望 null
分隔模式,而前者需要换行。 从文件中读取的每个字符串都是
本身被视为文件模式。

要从文件中读取一组模式,请使用 包括: or 子包括:. 包括: 将使用所有
给定文件中的模式并将它们视为手动传入。
子包括: 只会将模式应用于 subinclude 下的文件
文件的目录。 看 hg 帮助 忽略 有关这些文件格式的详细信息。

所有模式,除了 球体: 在命令行中指定(不适用于 -I or -X 选项),可以
还与目录匹配:匹配目录下的文件被视为匹配。

简单的例子:

path:foo/bar 根目录中名为 foo 的目录中的名称 bar
存储库的
path:path:name 一个名为“path:name”的文件或目录

全局示例:

glob:*.c 当前目录中以“.c”结尾的任何名称
*.c 当前目录中以“.c”结尾的任何名称
**.c 任何以“.c”结尾的名称
当前目录,包括它自己。
foo/*.c 目录 foo 中以“.c”结尾的任何名称
foo/**.c foo 的任何子目录中以“.c”结尾的任何名称
包括它自己。

正则表达式示例:

re:.*\.c$ 任何以“.c”结尾的名称,存储库中的任何位置

文件示例:

listfile:list.txt 从 list.txt 读取列表,每行一个文件模式
listfile0:list.txt 使用空字节分隔符从 list.txt 读取列表

参见 hg 帮助 文件集.

包括示例:

include:path/to/mypatternfile 读取要应用于所有路径的模式
subinclude:path/to/subignorefile 专门针对路径中的路径读取模式
子目录

工作 阶段


什么是 ,那恭喜你, 阶段?
阶段是用于跟踪哪些变更集已经或应该共享的系统。 这
有助于防止修改历史时的常见错误(例如,使用 mq 或 rebase
扩展名)。

存储库中的每个变更集都处于以下阶段之一:

· public:变更集在公共服务器上可见

· 草稿:变更集尚未发布

· 秘密:不应推送、拉取或克隆变更集

这些阶段是有序的(公共 < 草稿 < 秘密),没有变更集可以在较低的
比它的祖先相。 例如,如果一个变更集是公开的,那么它的所有祖先都是
也是公开的。 最后,变更集阶段只能更改为公共阶段。

创新中心 ,那恭喜你, 阶段 管理?
在大多数情况下,阶段应该透明地工作。 默认情况下,在
草稿阶段,当它被推送到另一个阶段时,它会进入公共阶段
库。

一旦变更集公开,mq 和 rebase 等扩展将拒绝运行
它们以防止创建重复的变更集。 相位也可以手动操作
hg 如果需要,命令。 看 hg 帮助 -v 例如。

要使您的提交默认保密,请将其放入您的配置文件中:

[阶段]
新提交 = 秘密

阶段 服务器
通常,所有服务器都 出版 默认。 这意味着:

- 所有被拉取或克隆的草稿变更集都出现在阶段
在客户端公开

- 推送的所有草稿变更集在两者上都显示为公开
客户端和服务器

- 既不推送、拉取或克隆秘密变更集

注意 从发布服务器中拉出一个草稿变更集不会将其标记为公开
服务器端由于 pull 的只读性质。

有时可能需要在草稿阶段推送和拉取变更集以共享
未完成的工作。 这可以通过将存储库设置为禁用其发布来完成
配置文件:

[阶段]
发布 = 假

我们 hg 帮助 配置 有关配置文件的更多信息。

注意 运行旧版本 Mercurial 的服务器被视为发布。

注意秘密阶段的变更集不会与服务器交换。 这适用于他们的
内容:文件名、文件内容和变更集元数据。 由于技术原因,
可以将秘密变更集的标识符(例如 d825e4025e39)传达给
服务器。

国际私人包机价格项目范例
· 列出草稿或秘密阶段的变更集:

hg log -r“不公开()”

· 将所有秘密变更集更改为草稿:

hg 阶段 --draft "secret()"

· 强制将当前变更集和后代从公共移动到草稿:

hg 阶段 --force --draft 。

· 显示变更集修订和阶段列表:

hg log --template "{rev} {phase}\n"

· 相对于远程存储库重新同步草稿变更集:

hg phase -fd“传出(URL)”

我们 hg 帮助 有关手动操作阶段的更多信息。

指定 单盒 修订版


Mercurial 支持多种方式来指定单独的修订。

普通整数被视为修订号。 负整数被视为
与尖端的连续偏移,-1 表示尖端,-2 表示先前的修订
到小费,依此类推。

40 位十六进制字符串被视为唯一的修订标识符。

长度小于 40 个字符的十六进制字符串被视为唯一修订版
标识符,称为缩写标识符。 一个简短的标识符只是
如果它恰好是一个全长标识符的前缀,则有效。

任何其他字符串都被视为书签、标签或分支名称。 书签是可移动的
指向修订的指针。 标记是与修订相关联的永久名称。 一个分支名称
表示该分支的最顶端打开的分支头 - 或者如果它们都关闭,则
最顶端封闭的分支头。 书签、标签和分支名称不得包含
“:“ 特点。

保留名称“tip”始终标识最新版本。

保留名称“null”表示空修订。 这是一个空的修改
存储库,以及修订版 0 的父级。

保留名称“.” 表示工作目录父级。 如果没有工作目录
签出,就相当于null。 如果正在进行未提交的合并,则为“.”。 是个
修改第一个父项。

指定 修订 集合


Mercurial 支持用于选择一组修订的功能语言。

该语言支持许多由中缀运算符连接的谓词。
括号可用于分组。

诸如分支名称之类的标识符可能需要用单引号或双引号引起来,如果它们
包含像这样的字符 - 或者如果它们匹配预定义的谓词之一。

特殊字符可以通过转义在引用标识符中使用,例如, \n is
解释为换行符。 为了防止它们被解释,字符串可以被前缀
r,例如 r'...'.

有一个前缀运算符:

不能 x

不在 x 中的变更集。 简短的形式是 ! x.

这些是受支持的中缀运算符:

x::y

DAG 范围,表示作为 x 的后代和 y 的祖先的所有变更集,
包括 x 和 y 本身。 如果省略了第一个端点,则等效于
祖先(y),如果第二个被省略,则相当于 后代(x).

另一种语法是 x..y.

x:y

修订号在 x 和 y 之间的所有变更集,包括两者。 任何一个
端点可以省略,它们默认为 0 和小费。

x y

x 和 y 中变更集的交集。 简短的形式是 x & y.

x or y

x 和 y 中变更集的并集。 有两种替代的简短形式: x | y
x + y.

x - y

x 中的变更集,但 y 中没有。

x^n

x 的第 n 个父节点,n == 0、1 或 2。对于 n == 0,x; 对于 n == 1,第一个父级
x 中的每个变更集; 对于 n == 2,x 中变更集的第二个父级。

x~n

x的第n个祖先; x~0 是 x; x~3 is x^^^.

有一个后缀运算符:

x^

相当于 ×^1,x 中每个变更集的第一个父级。

支持以下谓词:

添加(模式)

添加文件匹配模式的变更集。

没有明确种类的模式 球体: 预计相对于
当前目录并与文件或目录匹配。

所有()

所有变更集,与 0:提示.

祖先(*变更集)

变更集的最大共同祖先。

接受 0 个或多个变更集。 不传递任何参数时将返回空列表。
单个变更集的最大共同祖先是该变更集。

祖先(集)

作为集合中变更集的祖先的变更集。

作者(字符串)

别名 用户(字符串).

平分(字符串)

标记为指定对分状态的变更集:

· 非常好, , 跳过: csets 明确标记为好/坏/跳过

· , 坏的 : csets 拓扑好/坏

· 范围 : 参与二等分的 csets

· 修剪 : 商品、坏品或跳过的 cset

· 未经测试 : 命运未知的 csets

· 忽视 : csets 由于 DAG 拓扑而被忽略

· 当前 : 当前被二等分的 cset

书签([名称])

命名的书签或所有书签。

If 姓名 以。。开始 回覆:,名称的其余部分被视为常规
表达。 匹配实际上以开头的书签 回覆:, 使用前缀
文字:.

分支(字符串 or 组)

属于给定分支或给定分支的所有变更集
变更集。

If 绳子 以。。开始 回覆:,名称的其余部分被视为常规
表达。 匹配实际开始的分支 回覆:, 使用前缀
文字:.

分支点()

具有多个孩子的变更集。

碰撞()

可变变更集被标记为公共变更集的继任者。

只有非公开和非过时的变更集可以 被撞.

捆()

包中的变更集。

Bundle 必须由 -R 选项指定。

儿童(套)

集合中变更集的子变更集。

关闭()

变更集已关闭。

包含(模式)

修订的清单包含一个文件匹配模式(但可能不会修改它)。
我们 hg 帮助 模式 有关文件模式的信息。

没有明确种类的模式 球体: 预计相对于
当前目录并与文件完全匹配以提高效率。

转换([id])

从旧存储库中的给定标识符转换的变更集(如果存在),或
如果未指定标识符,则所有转换的变更集。

日期(间隔)

区间内的变更集,请参阅 hg 帮助 日期.

描述(字符串)

在提交消息中搜索字符串。 匹配不区分大小写。

后代(套)

作为集合中变更集的后代的变更集。

目的地([设置])

由移植、移植或变基操作创建的变更集,具有
给定的修订指定为源。 省略可选集与
通过所有()。

发散的()

变更集的最终继任者与一组替代的最终继任者。

草案()

草案阶段的变更集。

灭绝()

仅具有过时后代的过时变更集。

额外(标签, [价值])

在额外元数据中具有给定标签的变更集,具有给定的可选
计算值。

If 折扣值 以。。开始 回覆:, 该值的其余部分被视为常规
表达。 匹配一个实际开始的值 回覆:, 使用前缀
文字:.

文件(模式)

影响由模式匹配的文件的变更集。

要获得更快但不太准确的结果,请考虑使用 文件日志() 代替。

这个谓词使用 球体: 作为默认类型的模式。

文件日志(模式)

连接到指定文件日志的变更集。

出于性能原因,仅访问文件级文件日志中提到的修订,
而不是过滤所有变更集(快得多,但不包括
删除或重复更改)。 要获得更慢、更准确的结果,请使用 文件().

没有明确种类的模式 球体: 预计相对于
当前目录并与文件完全匹配以提高效率。

如果某些 linkrev 指向由当前 repoview 过滤的修订,我们将工作
围绕它返回一个未过滤的值。

首先(设置, [n])

limit() 的别名。

跟随([模式])

别名为 ::。 (工作目录的第一个父级的祖先)。 如果模式
指定,则遵循与给定模式匹配的文件的历史记录,包括
副本。

grep(正则表达式)

喜欢 关键字(字符串) 但接受正则表达式。 采用 grep(r'...') 确保特殊逃生
字符被正确处理。 不像 关键字(字符串), 匹配是
区分大小写。

头()

变更集是一个命名的分支头。

头(套)

集合中没有孩子的集合成员。

隐()

隐藏的变更集。

标识(字符串)

由给定的十六进制字符串前缀明确指定的修订。

关键字(字符串)

在提交消息、用户名和更改文件的名称中搜索字符串。 比赛
不区分大小写。

最后(设置, [n])

集合的最后 n 个成员,默认为 1。

限制(设置[, n[, 抵消]])

set 的前 n 个成员,默认为 1,从 offset 开始。

匹配(修订 [, 场地])

给定字段集与所选字段集匹配的变更集
修订或设置。

要匹配多个字段,请传递要匹配的字段列表,以空格分隔
(例如 作者 描述).

有效字段是最常规的修订字段和一些特殊字段。

定期修订字段是 描述, 作者, , 日期, , ,
父母, 子状态, 用户差异。 注意 作者用户 是同义词。 差异
指修订内容。 与他们匹配的两个修订 差异 还将
匹配他们的 .

特殊领域是 摘要元数据: 摘要 匹配的第一行
描述。 元数据 相当于匹配 描述 用户 日期 (即它
匹配主要元数据字段)。

元数据 是未指定字段时使用的默认字段。 你可以
一次匹配多个字段。

最大值(组)

集合中修订号最高的变更集。

合并()

变更集是一个合并变更集。

分钟(组)

集合中修订号最低的变更集。

修改(模式)

修改与模式匹配的文件的变更集。

没有明确种类的模式 球体: 预计相对于
当前目录并与文件或目录匹配。

命名(命名空间)

给定命名空间中的变更集。

If 命名空间 以。。开始 回覆:,字符串的其余部分被视为常规
表达。 匹配实际上以开头的命名空间 回覆:, 使用前缀
文字:.

过时的()

具有较新版本的可变变更集。

仅(设置, [放])

作为第一个集合的祖先但不是任何其他集合的祖先的变更集
头在回购。 如果指定了第二个集合,则结果是
第一组不是第二组的祖先(即:: - :: )。

原点([设置])

被指定为移植、移植或变基源的变更集
这创建了给定的修订。 省略可选集与传递相同
全部()。 如果由这些操作创建的变更集本身被指定为源
对于其中一个操作,只有第一个操作的源变更集是
选择。

传出([路径])

在指定的目标存储库中找不到变更集,或默认推送
的位置。

p1([设置])

集合或工作目录中变更集的第一个父级。

p2([设置])

set 或工作目录中变更集的第二个父级。

父母([组])

set 或工作目录中所有变更集的所有父项的集合。

礼物(套)

如果未找到集合中的任何修订,则为空集合; 否则,设置中的所有修订。

如果本地存储库中不存在任何指定的修订,则查询是
正常中止。 但是这个谓词允许查询即使在这样的情况下也能继续
案例。

民众()

公共阶段的变更集。

远程([ID [,小路]])

对应于远程存储库中给定标识符的本地修订,如果
展示。 在这里,“。” 标识符是当前本地分支的同义词。

移除(模式)

删除匹配模式的文件的变更集。

没有明确种类的模式 球体: 预计相对于
当前目录并与文件或目录匹配。

转(数字)

使用给定的数字标识符进行修订。

反向(设置)

集合的相反顺序。

根(组)

集合中没有父变更集的变更集。

秘密()

秘密阶段的变更集。

排序(设置[, [-]钥匙...])

按键设置排序。 默认排序顺序是升序,指定一个键为 -键
按降序排列。

键可以是:

· 对于修订号,

· 对于分支名称,

· 说明 对于提交消息(描述),

· 用户 对于用户名(作者 可以用作别名),

· 日期 提交日期

子仓库([模式])

添加、修改或删除给定子存储库的变更集。 如果没有子回购模式
命名后,将返回任何子存储库更改。

标签名称])

按名称指定的标记,或者如果没有给出名称,则为所有标记的修订。

If 姓名 以。。开始 回覆:,名称的其余部分被视为常规
表达。 匹配实际上以开头的标签 回覆:, 使用前缀 文字:.

不稳定()

具有过时祖先的非过时变更集。

用户(字符串)

用户名包含字符串。 匹配不区分大小写。

If 绳子 以。。开始 回覆:,字符串的其余部分被视为常规
表达。 匹配实际包含的用户 回覆:, 使用前缀 文字:.

可以使用现有的任意组合来定义新的谓词(称为“别名”)
谓词或其他别名。 别名定义如下所示:

=

,在 反义词 Mercurial 配置文件的部分。 形式参数 $1,
$2等从别名替换到定义中。

例如,

[修订别名]
h = 头()
d($1) = 排序($1, 日期)
rs($1, $2) = 反向(排序($1, $2))

定义了三个别名, h, drs. rs(0:提示, 作者) 完全等同于
反向(排序(0:提示, 作者)).

中缀运算符 ## 可以将字符串和标识符连接成一个字符串。 例如:

[修订别名]
问题($1) = grep(r'\bissue[ :]?' ## $1 ## r'\b|\bbug\(' ## $1 ## r'\)')

问题(1234) 相当于 grep(r'\bissue[ :]?1234\b|\bbug\(1234\)') 在这种情况下。 这个
匹配所有“issue 1234”、“issue:1234”、“issue1234”和“错误(1234)”。

所有其他前缀、中缀和后缀运算符的优先级低于 ##。 例如, $1
## $ 2〜2 相当于 ($ 1 ## $2)~2.

命令行等效项 hg 日志:

-f -> ::。
-dx -> 日期(x)
-kx -> 关键字(x)
-m -> 合并()
-ux -> 用户(x)
-bx -> 分支(x)
-P x -> !::x
-lx -> 限制(表达式,x)

一些示例查询:

· 默认分支上的变更集:

hg log -r“分支(默认)”

· 自标签 1.5 以来默认分支上的变更集(不包括合并):

hg log -r "branch(default) and 1.5:: and not merge()"

· 开支头:

hg log -r "head() 并且没有关闭()"

· 标签 1.3 和 1.5 之间的变更集提到了影响的“错误” 文本/*:

hg log -r "1.3::1.5 和关键字(bug) 和文件('hgext/*')"

· 2008 年 XNUMX 月提交的变更集,按用户排序:

hg log -r "sort(date('May 2008'), user)"

· 提及“错误”或“问题”但不在标记版本中的变更集:

hg log -r“(关键字(bug)或关键字(问题))而不是祖先(标签())”

使用 水银 脚本 AND 自动化


机器(与人类相反)消耗 Mercurial 是很常见的。 本帮助主题
描述了将机器与 Mercurial 接口的一些注意事项。

选择 an 接口
机器可以选择几种与 Mercurial 交互的方法。 这些包括:

· 执行 hg 过程

· 查询 HTTP 服务器

· 调用命令服务器

执行 hg 进程与人类在 shell 中与 Mercurial 交互的方式非常相似。
你应该已经很熟悉了。

hg 服务 可用于启动服务器。 默认情况下,这将启动一个“hgweb”HTTP 服务器。
此 HTTP 服务器支持机器可读的输出,例如 JSON。 有关更多信息,请参阅 hg
帮助 网页版.

hg 服务 还可以启动“命令服务器”。 客户端可以连接到此服务器并发出
Mercurial 基于特殊协议的命令。 有关命令服务器的更多详细信息,
包括客户端库的链接,请参阅 https://mercurial.selenic.com/wiki/CommandServer。

hg 服务 基于接口(hgweb 和命令服务器)比简单的
hg 处理调用,因为它们可能更有效。 这是因为有
产生新的 Python 进程的巨大开销。

提示如果您需要调用几个 hg 短期内的流程和/或性能是
对您很重要,强烈建议使用基于服务器的界面。

环境 变量
如记录在 hg 帮助 环境, 各种环境变量影响
Mercurial 的运营。 以下内容与机器消耗特别相关
水银:

平原
如果未设置,Mercurial 的输出可能会受到配置设置的影响
影响其编码、详细模式、本地化等。

强烈建议机器在调用时设置此变量 hg
流程。

基因编码
如果未设置,则会从环境中检测 Mercurial 使用的语言环境。 如果
确定的语言环境不支持某些字符的显示,Mercurial 可能
错误地渲染这些字符序列(通常使用“?”作为占位符
对于当前语言环境中的无效字符)。

显式设置此环境变量是保证
一致的结果。 “utf-8”在类 UNIX 环境中是一个不错的选择。

HGRC路径
如果未设置,Mercurial 将使用
中描述的过程 hg 帮助 配置. 这包括继承用户或系统范围
配置文件。

当需要对 Mercurial 配置进行最大程度的控制时,
HGRC路径 可以设置为具有已知良好配置的显式文件。 在极少数情况下,
值可以设置为空文件或空设备(通常 的/ dev / null的) 绕过
加载任何用户或系统配置文件。 请注意,这些方法可以具有
意想不到的后果,因为用户和系统配置文件经常定义事物
像可能需要的用户名和扩展名
库。

消费 命令 输出
机器需要解析 Mercurial 命令的输出以获取相关信息是很常见的
数据。 本节介绍了执行此操作的各种技术。

解析 命令 输出
使用命令输出的最简单和最有效的解决方案可能是简单地
调用 hg 像用户一样使用命令并解析它们的输出。

许多命令的输出可以很容易地用像这样的工具来解析 grep的, 口渴AWK.

解析命令输出的一个潜在缺点是命令的输出可以改变
当 Mercurial 升级时。 虽然 Mercurial 确实通常会力求强大的倒退
兼容性,命令输出偶尔会改变。 为您的自动化进行测试
与互动 hg 通常建议使用命令,但在以下情况下更为重要
涉及原始命令输出解析。

运用 模板 系统 输出
更多来自Google的 hg 命令支持通过模板化输出 -T/--模板 争论。 有关更多信息,请参阅
hg 帮助 模板.

模板对于显式控制输出很有用,以便您获得准确的数据
你想格式化你想要的。 例如, 日志 -T {节点}\n 可用于打印
换行符分隔的变更集节点列表,而不是包含人工定制的输出
作者、日期、描述等。

提示如果解析原始命令输出过于复杂,可以考虑使用模板制作
你的生活更轻松。

-T/--模板 参数允许指定预定义的样式。 水星船与
机器可读样式 JSONXML,分别提供 JSON 和 XML 输出。
这些对于生成机器可读的输出很有用。

重要
JSONXML 样式被认为是实验性的。 虽然它们可能很有吸引力
用于轻松获得机器可读的输出,它们的行为可能会改变
后续版本。

这些样式在处理某些问题时也可能会出现意想不到的结果
编码。 Mercurial 将文件名之类的内容视为一系列字节和
使用某些编码设置将某些字节序列规范化为 JSON 或 XML
可能会带来惊喜。

命令 服务器 输出
如果使用命令服务器与 Mercurial 交互,您可能正在使用现有的
抽象命令服务器的实现细节的库/API。 如果是这样,这
接口层可以为你解析,省去你实现的工作
你自己。

输出 冗长
命令通常具有不同的输出详细程度,即使是机器可读的样式
使用(例如 -T JSON)。 添加 -v/--详细-调试 命令的参数可以
增加 Mercurial 公开的数据量。

获取所需数据的另一种方法是显式指定模板。

其他名称 Topics
调整
修订集是一种用于选择修订集的功能查询语言。
将其视为 Mercurial 存储库的 SQL。 Revsets 对查询很有用
特定数据的存储库。

我们 hg 帮助 调整 了解更多信息。

分享 延期
分享 扩展提供了跨平台共享存储库数据的功能
几个工作副本。 它甚至可以自动“池化”存储以进行逻辑
克隆时的相关存储库。

配置 分享 扩展可以导致显着的资源利用
减少,尤其是在磁盘空间和网络方面。 尤其如此
用于持续集成 (CI) 环境。

我们 hg 帮助 -e 分享 了解更多信息。

子存储库


子存储库允许您将外部存储库或项目嵌套到父 Mercurial
存储库,并使命令作为一个组对它们进行操作。

Mercurial 当前支持 Mercurial、Git 和 Subversion 子存储库。

子存储库由三个组件组成:

1. 嵌套存储库签出。 它们可以出现在父工作目录中的任何位置。

2. 嵌套存储库引用。 它们定义在 .hgsub,它应该放在
工作目录的根目录,并告诉子存储库签出的来源。
Mercurial 子存​​储库的引用如下:

路径/到/嵌套 = https://example.com/nested/repo/path

还支持 Git 和 Subversion 子存储库:

路径/到/嵌套 = [git]git://example.com/nested/repo/path
路径/到/嵌套 = [svn]https://example.com/nested/trunk/path

哪里 路径/到/嵌套 是相对于父 Mercurial 根的结帐位置,
https://example.com/nested/repo/path 是源存储库路径。 来源可以
还引用文件系统路径。

需要注意的是 .hgsub Mercurial 存储库中默认不存在,您必须
在使用子存储库之前创建并将其添加到父存储库。

3. 嵌套存储库状态。 它们定义在 .hgsubstate,它被放置在根
的工作目录,并捕获恢复所需的任何信息
子存储库到它们在父存储库变更集中提交的状态。
Mercurial 在提交时自动记录嵌套存储库的状态
父存储库。

备注
.hgsubstate 文件不应手动编辑。

添加 a 子存储库
If .hgsub 不存在,创建它并将其添加到父存储库。 克隆或结帐
您希望它存在于父存储库中的外部项目。 编辑 .hgsub
如上所述添加子存储库条目。 此时,子存储库是
跟踪并且下一次提交将其状态记录在 .hgsubstate 并将其绑定到
提交的变更集。

正在同步 a 子存储库
Subrepos 不会自动跟踪其源的最新变更集。 相反,他们
更新到与在
顶级变更集。 这样开发人员总能得到一组一致的兼容代码
和库更新时。

因此,更新子存储库是一个手动过程。 只需在
所需的修订,在顶级存储库中测试,然后在父存储库中提交
记录新的组合。

删除 a 子存储库
要从父存储库中删除子存储库,请从 .hgsub,
然后删除其文件。

互动效果 水银 命令
除非指定了 -S/--subrepos,否则 add 不会在 subrepos 中递归。 然而,如果
您在子存储库中指定文件的完整路径,即使没有
-S/--subrepos 指定。 Subversion 子存储库目前处于静默状态
忽略了。

添加删除
除非指定了 -S/--subrepos,否则 addremove 不会递归到 subrepos。
但是,如果您在子存储库中指定目录的完整路径, addremove 将
即使没有指定 -S/--subrepos 也可以对其执行。 Git 和颠覆
子存储库将打印警告并继续。

档案
除非指定了 -S/--subrepos,否则归档不会在子存储库中递归。

cat 当前仅处理子存储库中的精确文件匹配。 颠覆
当前忽略子存储库。

承诺 提交创建整个项目状态的一致快照及其
子存储库。 如果修改了任何子存储库,Mercurial 将中止。
可以通过指定 Mercurial 来提交所有修改过的子存储库
-S/--subrepos,或在配置文件中设置“ui.commitsubrepos=True”(参见 hg
帮助 配置)。 不再有任何修改的子存储库后,它记录
他们的状态并最终将其提交到父存储库中。 --addremove
选项还支持 -S/--subrepos 选项。 然而,Git 和 Subversion
子存储库将打印警告并中止。

差异 diff 不会在 subrepos 中递归,除非指定了 -S/--subrepos。 变化是
像往常一样显示在子存储库元素上。 Subversion 子存储库是
目前默默无视。

除非指定了 -S/--subrepos,否则文件不会递归到子存储库中。 然而,
如果您在子存储库中指定文件或目录的完整路径,它将是
即使没有指定 -S/--subrepos 也会显示。 Git 和颠覆
子存储库目前被静默忽略。

忘记 忘记当前仅处理子存储库中的精确文件匹配。 Git 和颠覆
子存储库目前被静默忽略。


除非指定了 -S/--subrepos,否则传入不会在 subrepos 中递归。 吉特和
Subversion 子存储库目前被静默忽略。

即将离任
除非指定了 -S/--subrepos,否则传出不会在 subrepos 中递归。 吉特和
Subversion 子存储库目前被静默忽略。

pull 不是递归的,因为在运行之前不清楚要拉什么 hg 更新
. 列出和检索父级引用的所有子存储库更改
存储库拉取的变更集充其量是昂贵的,在 Subversion 中是不可能的
情况。

Mercurial 会先自动推送所有子仓库
正在推送存储库。 这确保了新的子存储库更改可用
当被顶级存储库引用时。 Push 对 Subversion 来说是无操作的
子存储库。

状态 除非指定了 -S/--subrepos,否则 status 不会递归到子存储库中。
子存储库更改显示为常规 Mercurial 更改
子存储库元素。 Subversion 子存储库目前被静默忽略。

去掉 除非指定了 -S/--subrepos,否则 remove 不会递归到子存储库中。
但是,如果您在子存储库中指定文件或目录路径,它将被删除
即使没有 -S/--subrepos。 Git 和 Subversion 子存储库目前是
默默无视。

更新 update 将子存储库恢复到它们最初在目标中提交的状态
变更集。 如果记录的变更集在当前子存储库中不可用,
Mercurial 将在更新之前先将其拉入。 这意味着更新可以
使用子存储库时需要网络访问。

重新映射 子存储库 来源
子存储库源位置可能会在项目生命周期内发生变化,从而使引用无效
存储在父存储库历史记录中。 为了解决这个问题,重写规则可以定义在
父存储库 高铁 文件或在 Mercurial 配置中。 见 [子路径] 部分
高铁(5) 了解更多详情。

模板 用法


Mercurial 允许您通过模板自定义命令的输出。 你可以
传入模板或从命令行选择现有模板样式,通过
--模板选项。

您可以自定义任何“类日志”命令的输出:日志、传出、传入、提示、
父母,还有头。

一些内置样式与 Mercurial 一起打包。 这些可以列出 hg 日志
- 模板 名单. 用法示例:

$ hg log -r1.0::1.1 --模板变更日志

模板是一段文本,带有调用变量扩展的标记:

$ hg log -r1 --template "{node}\n"
b56ce7b07c52de7d5fd79fb89701ea538af65746

花括号中的字符串称为关键字。 关键字的可用性取决于
模板的确切上下文。 这些关键字通常可用于模板
类似日志的命令:

活动书签
细绳。 活动书签,如果它与变更集相关联

作者 细绳。 变更集的未修改作者。

二等分 细绳。 变更集二等分状态。

书签
字符串列表。 与变更集关联的任何书签。 还设置“活动”,
活动书签的名称。

细绳。 提交变更集的分支的名称。

变化自最新标签
整数。 所有祖先不在最新标签中。

孩子
字符串列表。 变更集的子代。

日期 日期信息。 提交变更集的日期。

说明 细绳。 变更集描述的文本。

差异统计
细绳。 使用以下格式的更改统计信息:“修改后的文件:
+添加/-删除行"

提取 此变更集的“附加”字段的键、值条目的字典列表。

文件添加
字符串列表。 此变更集添加的文件。

文件副本
字符串列表。 在此变更集中复制的文件及其来源。

文件副本开关
字符串列表。 与“file_copies”类似,但仅在 --copied 开关为
设置。

文件删除
字符串列表。 此变更集删除的文件。

文件模组
字符串列表。 此变更集修改的文件。

字符串列表。 此变更集修改、添加或删除的所有文件。

图节点
细绳。 在 ASCII 修订图中表示变更集节点的字符

最新标签
字符串列表。 最近全局标记的祖先的全局标记
这个变更集。

最新标签距离
整数。 到最新标签的最长路径。

命名空间
列表的字典。 每个命名空间附加到此变更集的名称。

节点 细绳。 变更集标识哈希,作为 40 位十六进制数字字符串。

p1节点 细绳。 变更集的第一个父项的标识哈希,为 40 位
十六进制字符串。 如果变更集没有父项,则所有数字均为 0。

p1转 整数。 变更集的第一个父级的存储库本地修订号,或
-1 如果变更集没有父母。

p2节点 细绳。 变更集的第二个父项的标识哈希,为 40 位
十六进制字符串。 如果变更集没有第二个父项,则所有数字均为 0。

p2转 整数。 变更集的第二个父版本的存储库本地修订号,或
-1 如果变更集没有第二个父项。

父母
字符串列表。 “rev:node”格式的变更集的父级。 如果
变更集只有一个“自然”父级(前身修订版)没有什么是
所示。

细绳。 变更集阶段名称。

相位
整数。 变更集阶段索引。

整数。 存储库本地变更集修订号。

子仓库
字符串列表。 更新了变更集中的子存储库。

标签 字符串列表。 与变更集关联的任何标签。

“日期”关键字不会产生人类可读的输出。 如果你想使用日期
你的输出,你可以使用过滤器来处理它。 过滤器是返回一个
基于输入变量的字符串。 请务必先使用 stringify 过滤器
将字符串输入过滤器应用于类似列表的输入变量。 也可以使用链式
过滤器以获得所需的输出:

$ hg 提示 --template "{date|isodate}\n"
2008-08-21 18:22 +0000

过滤器列表:

添加中断
任何文字。 添加一个 XHTML " " 在除最后一行之外的每一行的末尾之前添加标签。

年龄 日期。 返回给定日期/时间与人类可读的日期/时间差
当前日期/时间。

基本名
任何文字。 将文本视为路径,并返回路径的最后一个组件
由路径分隔符分割后(忽略尾随分隔符)。 例如,
“foo/bar/baz”变成“baz”,“foo/bar//”变成“bar”。

列表或文本。 以整数形式返回长度。

任何文字。 查找第一个看起来像电子邮件地址的字符串,然后提取
只是域组件。 例子: 用户 <[电子邮件保护]> 成为 example.com.

邮箱地址 任何文字。 提取第一个看起来像电子邮件地址的字符串。 例子: 用户
<[电子邮件保护]> 成为 [电子邮件保护].

电子邮件用户
任何文字。 返回电子邮件地址的用户部分。

逃生 任何文字。 用 XML 替换特殊的 XML/XHTML 字符“&”、“<”和“>”
实体,并过滤掉 NUL 字符。

填充68 任何文字。 将文本换行以适合 68 列。

填充76 任何文字。 将文本换行以适合 76 列。

第一行
任何文字。 返回第一行文本。

十六进制 任何文字。 将二进制 Mercurial 节点标识符转换为其长十六进制
表示。

日期 日期。 以一对数字的形式返回日期:“1157407993 25200”(Unix 时间戳,
时区偏移)。

异酸盐
日期。 以 ISO 8601 格式返回日期:“2009-08-18 13:00 +0200”。

等位安全
日期。 返回 ISO 8601 格式的日期,包括秒:“2009-08-18 13:00:13
+0200"。另见 rfc3339date 过滤器。

降低 任何文字。 将文本转换为小写。

非空
任何文字。 如果字符串为空,则返回 '(none)'。

混淆
任何文字。 返回呈现为一系列 XML 实体的输入文本。

任何文字。 返回电子邮件地址之前的名称,根据 RFC 对其进行解释
5322.

回避
任何文字。 转义所有“特殊”字符,@ 除外。 正斜杠被转义
两次以防止 Web 服务器过早地取消转义它们。 例如,“@foo
bar/baz”变成“@foo%20bar%252Fbaz”。

RFC3339日期
日期。 使用 RFC 3339 中指定的 Internet 日期格式返回日期:
"2009-08-18T13:00:13+02:00".

RFC822日期
日期。 使用电子邮件标题中使用的相同格式返回日期:“Tue, 18 Aug 2009
13:00:13 +0200”。

变更集哈希。 返回变更集哈希的缩写形式,即 12 位十六进制
数字串。

短平分
任何文字。 款待 文本 作为二等分状态,并返回单个字符
表示状态(G:好,B:坏,S:跳过,U:未测试,I:忽略)。
如果返回单个空格 文本 不是有效的二等分状态。

短期约会
日期。 返回类似“2006-09-18”的日期。

分割线
任何文字。 将文本拆分为行列表。

串化
任意种类。 通过将值转换为文本并将值转换为文本
连接它们。

条带目录
如果可能,将文本视为路径并剥离目录级别。 例如,“富”
并且“foo/bar”变成了“foo”。

塔宾登
任何文字。 返回文本,除了第一个开始之外的每个非空行
带有制表符。

任何文字。 将文本转换为大写。

网址转义
任何文字。 转义所有“特殊”字符。 例如,“foo bar”变成
“foo%20bar”。

用户 任何文字。 返回用户名或电子邮件地址的简短表示。

请注意,过滤器只不过是一个函数调用,即 表达式|过滤器 是等价的
过滤器(表达式).

除了过滤器,还有一些基本的内置函数:

日期(日期[, 调速器])
格式化日期。 看 hg 帮助 日期 用于格式化字符串。 默认为 Unix 日期
格式,包括时区:“Mon Sep 04 15:13:13 2006 0700”。

差异([包括模式 [, 排除模式]])
显示差异,可选择指定要包含或排除的文件。

填充(文本[, 宽度[, 初始标识[, 缩进]]])
用可选的缩进填充许多段落。 请参阅“填充”过滤器。

得到(字典, 键)
从对象中获取属性/键。 一些关键字是复杂类型。 这个功能
允许您获取这些类型的属性值。

如果(表达式, 然后[, 别的])
根据表达式的结果有条件地执行。

如果包含(搜索, 事情, 然后[, 别的])
根据“search”项是否在“thing”中,有条件地执行。

ifeq(表达式 1, 表达式2, 然后[, 别的])
根据 2 项是否相等有条件地执行。

缩进(文本, 压痕 [, 第一行])
使用 indentchars 字符串中给定的字符缩进所有非空行。 一个
可选的第三个参数将覆盖第一行的缩进,仅当
当下。

加入(列表, 九月)
使用分隔符连接列表中的项目。

标签(标签, 表达式)
将标签应用于生成的内容。 应用了标签的内容可能会导致
额外的后处理,例如自动着色。

最新标签([模式])
与最近全局标记上的给定模式匹配的全局标记
这个变更集的祖先。

本地日期(日期 [, 茨])
将日期转换为指定的时区。 默认为本地日期。

垫(文字, 宽度[, 填充字符=' '[, 对=假]])
用填充字符填充文本。

修订集(查询[, 格式参数...])
执行修订集查询。 看 hg 帮助 重置.

rstdoc(文本, 风格)
格式化 ReStructuredText。

最短(节点, 最小长度=4)
获取节点的最短表示。

开始于(模式, 文本)
如果“文本”参数的值以
“模式”论据。

条(文本[, 字符])
从字符串中去除字符。 默认情况下,去除所有前导和尾随
空白。

子(模式, 替代, 表达)
使用正则表达式执行文本替换。

字(数字, 文本[, 分隔器])
返回字符串中的第 n 个单词。

此外,对于任何返回列表的表达式,都有一个列表运算符:

expr % "{模板}"

如上例所示, {模板} 被解释为模板。 为了防止它
被解释,您可以使用转义字符 \{ 或原始字符串前缀, r'...'.

一些示例命令行模板:

· 格式化列表,例如文件:

$ hg log -r 0 --template "文件:\n{files % ' {file}\n'}"

· 用“,”加入文件列表:

$ hg log -r 0 --template "文件:{join(files, ', ')}\n"

· 修改提交描述的每一行:

$ hg log --template "{splitlines(desc) % '**** {line}\n'}"

· 格式化日期:

$ hg log -r 0 --template "{date(date, '%Y')}\n"

· 以 UTC 显示日期:

$ hg log -r 0 --template "{localdate(date, 'UTC')|date}\n"

· 将描述集输出为 30 的填充宽度:

$ hg log -r 0 --template "{fill(desc, 30)}"

· 使用条件测试默认分支:

$ hg log -r 0 --template "{ifeq(branch, 'default', '在主分支上',
'在分支 {branch}')}\n"

· 如果不为空,则添加换行符:

$ hg tip --template "{if(author, '{author}\n')}"

· 标记输出以使用颜色扩展:

$ hg log -r 0 --template "{label('changeset.{phase}', node|short)}\n"

· 反转第一行过滤器,即除第一行之外的所有内容:

$ hg log -r 0 --template "{sub(r'^.*\n?\n?', '', desc)}\n"

· 显示“额外”字段的内容,每行一个:

$ hg log -r 0 --template "{join(extras, '\n')}\n"

· 用“*”标记活动书签:

$ hg log --template "{bookmarks % '{bookmark}{ifeq(bookmark, active, '*')} '}\n"

· 查找上一个候选发布标签,距离和标签后的变化:

$ 汞日志 -r 。 --template "{latesttag('re:^.*-rc$') % '{tag}, {changes}, {distance}'}\n"

· 用'@'标记工作副本父级:

$ hg log --template "{ifcontains(rev, revset('.'), '@')}\n"

· 显示父修订的详细信息:

$ hg log --template "{revset('parents(%d)', rev) % '{desc|firstline}\n'}"

· 仅显示以“模板”开头的提交描述:

$ hg log --template "{startswith('template', firstline(desc))}\n"

· 打印提交消息每行的第一个单词:

$ hg log --template "{word(0, desc)}\n"

网址 路径


有效 URL 的格式为:

本地/文件系统/路径[#revision]
文件://本地/文件系统/路径[#revision]
http://[user[:pass]@]host[:port]/[path][#revision]
https://[user[:pass]@]host[:port]/[path][#revision]
ssh://[用户@]主机[:端口]/[路径][#修订版]

本地文件系统中的路径可以指向 Mercurial 存储库或捆绑
文件(由 hg or hg - 捆)。 也可以看看 hg 帮助 路径.

# 之后的可选标识符表示要使用的特定分支、标记或变更集
从远程存储库。 也可以看看 hg 帮助 修订.

某些功能,例如推送到 http:// 和 https:// URL,只有在
功能在远程 Mercurial 服务器上显式启用。

请注意,HTTPS URL 的安全性取决于 web.cacerts 的正确配置。

关于在 Mercurial 中使用 SSH 的一些注意事项:

· SSH 需要目标机器上可访问的 shell 帐户和 hg 的副本
远程路径或指定为 remotecmd。

· 默认情况下,路径是相对于远程用户的主目录。 在
指定绝对路径的路径的开头:

ssh://example.com//tmp/repository

· Mercurial 不通过 SSH 使用自己的压缩; 正确的做法是配置
它在你的 的〜/ .ssh /配置,例如:

主机 *.mylocalnetwork.example.com
压缩无
主持人*
压缩是

或者在配置文件中指定“ssh -C”作为 ssh 命令或使用
--ssh 命令行选项。

这些 URL 都可以存储在您的配置文件中,路径别名位于
[paths] 部分像这样:

[路径]
别名 1 = URL1
别名 2 = URL2
...

然后,您可以将别名用于任何使用 URL 的命令(例如 hg alias1
将被视为 hg 网址1).

两个路径别名是特殊的,因为当您不提供
命令的 URL:

默认情况下:
当您使用 hg clone 创建存储库时,clone 命令会保存
源存储库作为新存储库的“默认”路径。 然后使用它
当您从推式和拉式命令中省略路径时(包括传入和
传出)。

默认推送:
push 命令将查找名为“default-push”的路径,并优先使用它
'default' 如果两者都被定义。

EXTENSIONS


本节包含与 Mercurial 一起分发的扩展的帮助。
帮助系统中提供了其他扩展的帮助。

ACL
用于控制存储库访问的钩子

这个钩子可以允许或拒绝对给定分支和路径的写访问
通过 pretxnchangegroup 和 pretxncommit 接收传入变更集时的存储库。

根据钩子所在系统上的本地用户名匹配授权
运行,而不是原始变更集的提交者(因为后者仅仅是
资料)。

acl 钩子最好与像 hgsh 这样的受限 shell 一起使用,防止
验证用户做除了推或拉以外的任何事情。 钩子不是
如果用户具有交互式 shell 访问权限,则可以安全使用,因为他们可以禁用该钩子。 也不
如果远程用户共享一个帐户是否安全,因为没有办法区分
他们。

执行访问检查的顺序是:

1. 拒绝分支列表(部分 acl.deny.分支)

2. 分支允许列表(部分 acl.allow.分支)

3. 拒绝路径列表(部分 拒绝)

4. 路径允许列表(部分 acl.允许)

允许和拒绝部分采用键值对。

基于分支 访问 系统
使用 acl.deny.分支acl.allow.分支 具有基于分支的访问权限的部分
控制。 这些部分中的键可以是:

· 一个分支名称,或

· 一个星号,匹配任何分支;

对应的值可以是:

· 包含用户和组的逗号分隔列表,或

· 一个星号,匹配任何人;

您可以添加“!” 用户或组名的前缀以反转匹配的含义。

基于路径 访问 系统
使用 拒绝acl.允许 部分具有基于路径的访问控制。 这些中的键
部分接受子树模式(默认情况下使用 glob 语法)。 相应的
值遵循与上述其他部分相同的语法。

组别
组名必须以 @ 象征。 指定组名也有同样的效果
指定该组中的所有用户。

您可以在 acl 组 部分。 如果未定义组名
在那里,Mercurial 在类 Unix 系统下运行,用户列表将被获取
从操作系统。 否则,将引发异常。

例如: 配置
[钩子]

# 如果您想在提交时检查访问限制,请使用此选项
pretxncommit.acl = python:hgext.acl.hook

# 如果你想检查拉、推的访问限制,请使用它
# 捆绑并提供服务。
pretxnchangegroup.acl = python:hgext.acl.hook

[访问控制列表]
# 允许或拒绝对传入更改的访问,仅当它们的来源是
# 在这里列出,否则让他们通过。 来源是为所有人“服务”
# 远程访问(http 或 ssh),“push”,“pull”或“bundle”当
# 相关命令在本地运行。
# 默认:服务
来源 = 服务

[acl.拒绝.分支]

# 每个人都被拒绝冻结分支:
冻结分支 = *

# 一个坏用户在所有分支上都被拒绝:
* = 坏用户

[acl.允许分支]

# branch-a 上允许一些用户:
分支 a = 用户 1、用户 2、用户 3

# branch-b 上只允许一个用户:
分支-b = user-1

# 任何分支都允许超级用户:
* = 超级用户

# 每个人都可以进行分支测试:
测试分支 = *

[acl.拒绝]
# 先检查这个列表。 如果找到匹配项,则 acl.allow 不是
#检查。 如果 acl.deny 不存在,则授予所有用户访问权限。
# 两个列表的格式:glob pattern = user, ..., @group, ...

# 要匹配所有人,请为用户使用星号:
# 我的/glob/模式 = *

# user6 将没有对任何文件的写入权限:
** = 用户 6

# 组“hg-denied”将没有对任何文件的写访问权:
** = @hg-拒绝

# 没有人能够更改“DONT-TOUCH-THIS.txt”,尽管
# 每个人都可以更改所有其他文件。 见下文。
src/main/resources/不要触摸-THIS.txt = *

[acl.允许]
# 如果 acl.allow 不存在,默认允许所有用户
# empty acl.allow = 不允许用户

# 用户“doc_writer”对“docs”下的任何文件都有写权限
# 文件夹:
文档/** = doc_writer

# 用户“jack”和组“designers”对任何文件都有写权限
# 在“图像”文件夹下:
图片/** = 杰克,@designers

# 每个人(除了 "user6" 和 "@hg-denied" - 见上面的 acl.deny)
# 将拥有对“resources”文件夹下任何文件的写入权限
#(1个文件除外。见acl.deny):
源/主要/资源/** = *

.hgtags = 发布工程师

国际私人包机价格项目范例 运用 ! 字首
假设有一个只有给定用户(或组)应该能够推送到的分支,并且
您不想限制对可能创建的任何其他分支的访问。

这 ”!” 前缀允许您阻止除给定用户或组之外的任何人推送
给定分支或路径中的变更集。

在下面的示例中,我们将: 1) 拒绝除用户之外的任何人访问分支“环”
“gollum” 2)拒绝除“hobbit”组成员之外的任何人访问分支“lake” 3)
拒绝除用户“gollum”以外的任何人访问文件

[acl.允许分支]
# 空的

[acl.拒绝.分支]

# 1) 只有 'gollum' 可以提交到分支 'ring';
# 'gollum' 和其他任何人仍然可以提交到任何其他分支。
环=!咕噜

# 2) 只有组 'hobbit' 的成员可以提交分支 'lake';
# 'hobbit' 成员和其他任何人仍然可以提交到任何其他分支。
湖 = !@hobbit

# 你也可以根据文件路径拒绝访问:

[acl.允许]
# 空的

[acl.拒绝]
# 3) 只有 'gollum' 可以更改下面的文件;
# 'gollum' 和其他任何人仍然可以更改任何其他文件。
/迷雾/山脉/洞穴/戒指 = !咕噜

黑盒子
将存储库事件记录到黑盒以进行调试

将事件信息记录到 .hg/blackbox.log 以帮助调试和诊断问题。 这
记录的事件可以通过 blackbox.track 配置键进行配置。 例子:

[黑盒子]
轨道 = *

[黑盒子]
track = 命令、commandfinish、commandexception、exthook、pythonhook

[黑盒子]
轨道=传入

[黑盒子]
# 限制日志文件的大小
最大尺寸 = 1.5 MB
# 当当前日志文件太大时,最多轮换 N 个日志文件
最大文件数 = 3

命令
黑盒子
查看最近的存储库事件:

hg 黑盒 [选项] ...

查看最近的存储库事件

选项:

-l,- 限制
要显示的事件数(默认值:10)

Bugzilla的
用于与 Bugzilla 错误跟踪器集成的钩子

当变更集引用错误时,此挂钩扩展会在 Bugzilla 中添加对错误的注释
通过 Bugzilla ID 可以看到。 评论使用 Mercurial 模板机制进行格式化。

错误参考可以选择包括对 Bugzilla 所花费时间的更新
处理错误。 错误也可以标记为已修复。

提供了三种访问 Bugzilla 的基本模式:

1. 通过Bugzilla XMLRPC 接口访问。 需要 Bugzilla 3.4 或更高版本。

2. 通过Bugzilla XMLRPC 接口检查数据,并通过电子邮件将错误更改提交至
Bugzilla 电子邮件界面。 需要 Bugzilla 3.4 或更高版本。

3. 直接写入Bugzilla 数据库。 只有使用 MySQL 的 Bugzilla 安装是
支持的。 需要 Python MySQLdb。

直接写入数据库容易受到模式更改的影响,并且依赖于
用于发送错误更改通知电子邮件的 Bugzilla 贡献脚本。 该脚本运行为
运行 Mercurial 的用户必须在安装了 Bugzilla 的主机上运行,​​并且
需要读取 Bugzilla 配置详细信息的权限和必要的 MySQL 用户
和密码以获得对 Bugzilla 数据库的完全访问权限。 由于这些原因,这
访问模式现在被视为已弃用,并且不会针对新的 Bugzilla 进行更新
未来的版本。 此访问模式仅支持添加评论。

通过 XMLRPC 访问需要在
配置。 在该用户名下添加评论。 由于配置必须
所有 Mercurial 用户都可以阅读,建议该用户的权利是
在 Bugzilla 中限制为添加评论所需的最低限度。 标记错误已修复
需要 Bugzilla 4.0 及更高版本。

通过 XMLRPC/email 访问使用 XMLRPC 来查询 Bugzilla,但是向 Bugzilla 发送电子邮件
用于向错误提交评论的电子邮件界面。 电子邮件中的 From: 地址设置为
Mercurial 用户的电子邮件地址,因此评论似乎来自 Mercurial
用户。 如果 Mercurial 用户电子邮件未被 Bugzilla 识别为
Bugzilla 用户,与用于登录 Bugzilla 的 Bugzilla 用户名关联的电子邮件
而是用作评论的来源。 标记已修复的错误适用于所有受支持的
Bugzilla 版本。

所有接入方式通用的配置项:

bugzilla 版本
要使用的访问类型。 公认的价值观是:

XMLRPC

Bugzilla XMLRPC 接口。

xmlrpc+电子邮件

Bugzilla XMLRPC 和电子邮件接口。

3.0

MySQL 访问,Bugzilla 3.0 及更高版本。

2.18

MySQL 访问、Bugzilla 2.18 及最高但不包括 3.0。

2.16

MySQL 访问、Bugzilla 2.16 及最高但不包括 2.18。

bugzilla 正则表达式
正则表达式匹配错误 ID 以在变更集提交消息中进行更新。 它
必须包含一个“()”命名组 包含由分隔的错误 ID
非数字字符。 它还可能包含一个命名组
浮点数,给出了在 bug 上的工作时间。 如果没有命名组
目前,假设第一个“()”组包含错误 ID,工作时间为
未更新。 默认表达式匹配 问题 1234, 问题 没有。 1234, 问题
1234, 错误 1234,5678, 问题 1234 5678 及其变体,然后是
小时数前缀 h or 个小时里,例如 个小时里 1.5. 匹配不区分大小写。

bugzilla.fixregexp
正则表达式匹配错误 ID 以在变更集提交消息中标记已修复。
这必须包含一个名为“()”的组 ` 包含 错误 标识 分离 by
非数字 字符。 It 五月 包含 a 命名 ``
浮点数,给出了在 bug 上的工作时间。 如果没有命名组
目前,假设第一个“()”组包含错误 ID,工作时间为
未更新。 默认表达式匹配 修复 1234, 修复 错误 1234, 修复 虫子
1234,5678, 修复 1234 5678 及其变体,后跟小时数
前缀为 h or 个小时里,例如 个小时里 1.5. 匹配不区分大小写。

bugzilla.fixstatus
标记已修复时设置错误的状态。 默认 议决.

bugzilla.修复分辨率
标记修复时设置错误的分辨率。 默认 FIXED.

bugzilla.style
格式化注释时使用的样式文件。

bugzilla.模板
格式化评论时使用的模板。 如果指定,则覆盖样式。 此外
对于通常的 Mercurial 关键字,扩展指定:

{漏洞}

Bugzilla 错误 ID。

{根}

Mercurial 存储库的完整路径名。

{网络根}

Mercurial 存储库的剥离路径名。

{hgweb}

用于浏览 Mercurial 存储库的基本 URL。

默认 变更 {节点|短} in 回购 {根} 错误
{bug}。\n详情:\n\t{desc|tabindent}

bugzilla.strip
从 Mercurial 前面去除的路径分隔符的数量
存储库路径({根} 在模板中)生成 {网络根}。 例如,a
存储库 {根} /var/local/我的项目 带有 2 条的值为
{网络根} of 我的项目. 默认为 0。

web.baseurl
用于浏览 Mercurial 存储库的基本 URL。 从模板中引用为 {hgweb}.

XMLRPC+email 和 MySQL 访问方式共有的配置项:

bugzilla.用户地图
包含 Mercurial 提交者电子邮件到 Bugzilla 用户电子邮件映射的文件路径。
如果指定,文件每行应包含一个映射:

提交者 = Bugzilla 用户

另见 [用户地图] 部分。

[用户地图] 部分用于指定 Mercurial 提交者电子邮件到 Bugzilla 的映射
用户电子邮件。 也可以看看 bugzilla.用户地图. 包含表单的条目 提交者 = Bugzilla的
用户.

XMLRPC 访问方式配置:

bugzilla.bzurl
Bugzilla 安装的基本 URL。 默认 http://localhost/bugzilla.

bugzilla.用户
用于通过 XMLRPC 登录 Bugzilla 的用户名。 默认 虫子.

bugzilla.密码
Bugzilla 登录密码。

XMLRPC+email访问方式使用XMLRPC访问方式配置项,还有:

bugzilla.bzemail
Bugzilla 电子邮件地址。

此外,必须配置 Mercurial 电子邮件设置。 请参阅中的文档
高铁(5)、节 [电子邮件][SMTP].

MySQL访问模式配置:

bugzilla 主机
保存 Bugzilla 数据库的 MySQL 服务器的主机名。 默认 本地.

bugzilla.db
MySQL 中的 Bugzilla 数据库的名称。 默认 虫子.

bugzilla.用户
用于访问 MySQL 服务器的用户名。 默认 虫子.

bugzilla.密码
用于访问 MySQL 服务器的密码。

bugzilla.超时
数据库连接超时(秒)。 默认 5。

bugzilla.bzuser
如果变更集提交者不能,则用于记录评论的后备 Bugzilla 用户名
被发现为 Bugzilla 用户。

bugzilla.bzdir
Bugzilla 安装目录。 默认使用通知。 默认 /var/www/html/bugzilla.

bugzilla.通知
运行命令让 Bugzilla 发送错误更改通知电子邮件。
从具有 3 个键的映射中替换, 目录, id (错误 ID)和 用户 (提交者 bugzilla
电子邮件)。 默认取决于版本; 从 2.18 开始,它是 "cd %(bzdir)s && perl -T
contrib/sendbugmail.pl %(id)s %(user)s"。

激活扩展:

[扩展]
虫虫 =

[钩子]
# 在此处拉入或推入的每个更改上运行 bugzilla 钩子
传入.bugzilla = python:hgext.bugzilla.hook

示例配置:

XMLRPC 示例配置。 这使用 Bugzilla 在 http://my-project.org/bugzilla,
以用户身份登录 [电子邮件保护] 与密码 插头. 它与一个
Mercurial 存储库的集合 /var/本地/汞/回购/, 网页界面位于
http://my-project.org/hg.

[臭虫]
bzurl=http://my-project.org/bugzilla
用户=[电子邮件保护]
密码=插件
版本=xmlrpc
模板 = {root|basename} 中的变更集 {node|short}。
{hgweb}/{webroot}/rev/{node|short}\n
{描述}\n
条=5

[网络]
基地址=http://my-project.org/hg

XMLRPC+email 示例配置。 这使用 Bugzilla 在
http://my-project.org/bugzilla, 以用户身份登录 [电子邮件保护] 与密码
插头. 它与 Mercurial 存储库的集合一起使用 /var/本地/汞/回购/,
带有网络界面 http://my-project.org/hg. 错误评论发送到 Bugzilla
邮箱 [电子邮件保护].

[臭虫]
bzurl=http://my-project.org/bugzilla
用户=[电子邮件保护]
密码=插件
版本=xmlrpc+电子邮件
邮箱=[电子邮件保护]
模板 = {root|basename} 中的变更集 {node|short}。
{hgweb}/{webroot}/rev/{node|short}\n
{描述}\n
条=5

[网络]
基地址=http://my-project.org/hg

[用户地图]
[电子邮件保护]=[电子邮件保护]

MySQL 示例配置。 这有一个本地 Bugzilla 3.2 安装在
/opt/bugzilla-3.2. MySQL 数据库已打开 本地,Bugzilla 数据库名称为 虫子
使用 MySQL 用户名访问 MySQL 虫子 密码 XYZZY. 它与一个
Mercurial 存储库的集合 /var/本地/汞/回购/, 网页界面位于
http://my-project.org/hg.

[臭虫]
主机=本地主机
密码=XYZZY
version = 3.0
用户=[电子邮件保护]
bzdir=/opt/bugzilla-3.2
模板 = {root|basename} 中的变更集 {node|short}。
{hgweb}/{webroot}/rev/{node|short}\n
{描述}\n
条=5

[网络]
基地址=http://my-project.org/hg

[用户地图]
[电子邮件保护]=[电子邮件保护]

以上所有在表单的 Bugzilla 错误记录中添加注释:

存储库名称中的变更集 3b16791d6642。
http://my-project.org/hg/repository-name/rev/3b16791d6642

变更集提交评论。 错误 1234。

检查员
擦除给定修订的文件内容

censor 命令指示 Mercurial 删除给定版本的文件的所有内容
也完全不需要 更新 变更 哈希值。 这允许现有历史保持有效,同时
防止未来的克隆/拉取接收擦除的数据。

审查员的典型用途是出于安全或法律要求,包括:

* 密码、私钥、加密材料
* 许可已过期的许可数据/代码/库
* 个人身份信息或其他私人数据

被删节的节点可以在删除数据需要时中断 mercurial 的典型操作
被物化。 一些命令,比如 hg /hg 还原,当被要求时就失败了
产生审查数据。 其他的,比如 hg 确认hg 更新, 必须能够承受
审查数据以继续以有意义的方式发挥作用。 这样的命令只能容忍
如果“censor.policy=ignore”配置选项允许,则审查文件修订。

命令
检查员
hg censor -r REV [-t TEXT] [文件]

选项:

-r,--rev
从指定版本审查文件

-t,- 墓碑
替换墓碑数据

修改服务器
cHg 的命令服务器扩展(实验性)

'S' 渠道 (读/写)
将 ui.system() 请求传播到客户端

'附件' 命令
附加 sendmsg() 传递的客户端的 stdio

'chdir' 命令
更改当前目录

'getpager' 命令
检查是否启用了寻呼机以及应该执行哪个寻呼机

'setenv' 命令
完全替换 os.environ

'SIGHUP' 信号
重新加载配置文件

孩子
显示子变更集的命令(已弃用)

此扩展已弃用。 你应该使用 hg 日志 -r “儿童(REV)” 代替。

命令
孩子
显示给定或工作目录修订的子级:

汞儿童 [-r REV] [文件]

打印工作目录修订的子项。 如果通过给出修订
-r/--rev,该版本的子版本将被打印。 如果给出了文件参数,
上次更改文件的修订版(在工作目录修订版或
--rev 的参数(如果给定)被打印。

请用 hg 日志 代替:

hg children => hg log -r 'children()'
hg children -r REV => hg log -r 'children(REV)'

我们 hg 帮助 日志hg 帮助 转速.儿童.

选项:

-r,--rev
显示指定版本的子项

- 风格
使用模板地图文件显示(已弃用)

-T,- 模板
用模板展示

搅动
命令显示有关存储库历史的统计信息

命令
搅动
存储库更改的直方图:

hg 搅动 [-d 日期] [-r REV] [--别名文件] [文件]

此命令将显示一个直方图,表示更改的行数或
修订,根据给定的模板分组。 默认模板将分组
由作者更改。 --dateformat 选项可用于按日期对结果进行分组
代替。

统计信息基于更改的行数,或者基于更改的行数
如果指定了 --changesets 选项,则匹配修订。

例子:

# 显示每个提交者的更改行数
hg churn -t "{作者|电子邮件}"

# 显示每日活动图
hg 流失 -f "%H" -s -c

# 按月显示开发者的活动
hg 流失 -f "%Y-%m" -s -c

# 显示每年更改的行数
hg 流失 -f "%Y" -s

可以通过提供文件将备用电子邮件地址映射到主地址
使用以下格式:

=

可以使用 --aliases 选项指定这样的文件,否则将是 .hgchurn 文件
在工作目录根目录中查找。 别名将从最右边的“=”分割。

选项:

-r,--rev
指定修订或修订集的计数率

-d,- 日期
与日期规范匹配的修订计数率

-t,--旧模板
对变更集进行分组的模板(已弃用)

-T,- 模板
对变更集进行分组的模板(默认值:{author|email})

-F,- 日期格式
用于按日期分组的 strftime 兼容格式

-C, --变更集
按变更集数量计算比率

-是的, - 种类
按键排序(默认:按计数排序)

--差异统计
分别显示添加/删除的行

--别名
带有电子邮件别名的文件

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

[+] 标记选项可以多次指定

克隆包
将预先生成的包广告为种子克隆

“clonebundles”是用于宣传存在的服务器端扩展
预生成的、外部托管的捆绑文件到正在克隆的客户端,以便克隆
可以更快、更可靠,并且需要更少的服务器资源。

克隆可能是服务器上的 CPU 和 I/O 密集型操作。 传统上,服务器在
响应客户端的克隆请求,动态生成包含
整个存储库内容并将其发送给客户端。 服务器上没有缓存
并且服务器将不得不冗余地生成相同的传出包以响应
每个克隆请求。 对于具有大型存储库或具有高克隆量的服务器,
来自克隆的负载会使扩展服务器具有挑战性且成本高昂。

此扩展为服务器运营商提供了卸载潜在昂贵费用的能力
克隆负载到外部服务。 这是它的工作原理。

1. 服务器操作员建立一种机制,使捆绑文件在
Mercurial 客户端可以获取它们的托管服务。

2. 一个清单文件列出了可用的捆绑 URL 和一些可选的元数据被添加到
服务器上的 Mercurial 存储库。

3. 客户端针对克隆捆绑感知服务器启动克隆。

4. 客户端看到服务器正在发布克隆包并获取清单
列出可用的捆绑包。

5. 客户端根据其支持的内容过滤和排序可用的捆绑包
喜欢。

6. 客户端从服务器指定的 URL 下载并应用可用的捆绑包。

7.客户端重新连接到原始服务器并执行等效 hg
检索不在捆绑包中的所有存储库数据。 (存储库可能已更新
在创建捆绑包和客户端启动克隆之间。)

而不是服务器为每个克隆请求生成完整的存储库包,它
一次生成完整的捆绑包,然后将它们重新用于引导新的克隆。 这
服务器可能仍会在克隆时传输数据。 然而,这只是已获得的数据
自创建捆绑包以来添加/更改。 对于大型、已建立的存储库,这可以
将克隆的服务器负载减少到原始服务器的 1% 以下。

要工作,此扩展需要以下服务器操作员:

· 生成存储库内容的捆绑文件(通常是周期性的,例如每
天)。

· 客户端可以通过网络访问并且 Python 知道如何与之通信的文件服务器
通过其正常的 URL 处理工具(通常是 HTTP 服务器)。

· 使捆绑清单与可用捆绑文件保持同步的过程。

严格来说,不需要使用静态文件托管服务器:服务器操作员
可以使用动态服务来检索捆绑数据。 但是,静态文件托管
服务简单且可扩展,应该足以满足大多数需求。

捆绑文件可以使用 hg 命令。 通常 hg - 全部 is
用于生成整个存储库的捆绑包。

hg 调试创建流克隆包 可用于生产特殊的 克隆 .
这些捆绑文件的生产和消费效率极高(阅读:快速)。
但是,它们比传统的捆绑格式更大,需要客户支持
创建它们的存储库所使用的存储库数据存储格式的确切集合。
通常,较新的服务器可以提供与旧客户端兼容的数据。 然而,
克隆 捆绑 没有这个保证。 服务器 运营商 需要 be 察觉
较新 版本 of 水银 五月 生产 克隆 捆绑 不相容 老年人
水银 版本。

服务器操作员负责创建一个 .hg/clonebundles.manifest 文件包含
适合播种克隆的可用捆绑文件列表。 如果这个文件没有
存在时,存储库将不会在客户端发布克隆包的存在
连接。

清单文件包含一个以换行符 ( ) 分隔的条目列表。

此文件中的每一行都定义了一个可用的捆绑包。 行具有以下格式:

[ = [ = ]]

也就是说,一个 URL 后跟一个可选的、以空格分隔的 key=value 对列表,用于描述
此捆绑包的其他属性。 键和值都是 URI 编码的。

大写的键是保留给 Mercurial 使用的,定义如下。 全部
站点安装可以使用非大写键。 自定义属性的示例使用
是使用 数据中心 属性来定义文件托管在哪个数据中心。
然后,客户可以选择离他们最近的数据中心的服务器。

当前定义了以下保留键:

捆绑规范
描述捆绑包类型的“捆绑包规范”字符串。

这些是由“--type”参数接受的字符串值 hg .

这些值以严格模式解析,这意味着它们必须是
" - " 形式。有关更多信息,请参见 mercurial.exchange.parsebundlespec()
细节。

hg 调试包 --规格 可用于打印捆绑规范字符串
捆绑文件。 此命令的输出可以逐字用于
捆绑规范 (它已经逃脱了)。

客户端会自动过滤掉未知或未知的规格
不受支持,因此他们不会尝试下载可能不适用的内容。

实际值不会影响过滤之外的客户端行为:客户端将
仍然从下载文件的标题中嗅探捆绑类型。

使用 of Free Introduction is 高度 建议,因为它允许客户轻松跳过
不受支持的捆绑包。 如果未定义此键,旧客户端可能会尝试应用
无法读取的捆绑包。

需要
连接到 URL 是否需要服务器名称指示 (SNI)。 SNI 允许
服务器在同一 IP 上使用多个证书。 在 CDN 中有些常见
和其他托管服务提供商。 较旧的 Python 版本不支持 SNI。 定义
此属性使具有较旧 Python 版本的客户端能够过滤此条目
在连接时不会遇到不透明的 SSL 故障。

如果已定义,则通告非 SNI 后备 URL 或客户端很重要
运行旧的 Python 版本可能无法使用 clonebundles 进行克隆
设施。

值应该是“真”。

清单可以包含多个条目。 假设定义了元数据,客户端将过滤
他们不支持的清单中的条目。 其余条目是可选的
按客户偏好排序(实验性的.clonebundleprefers 配置选项)。 客户端
然后尝试在剩余列表中的第一个 URL 处获取捆绑包。

故障 ,尤其是 下载 a 失败 整个 克隆 操作: 客户 do 不能
自动 秋季 背部 a 传统 克隆。 这样做的原因是,如果服务器是
使用克隆包,它可能这样做是因为该功能是帮助它所必需的
规模。 换句话说,假设克隆负载将被卸载到另一个
服务,并且 Mercurial 服务器不负责提供此克隆负载。 如果
其他服务遇到问题并且客户开始大量退回到原来的
Mercurial 服务器,添加的克隆负载可能会由于意外负载而使服务器不堪重负
并有效地将其离线。 没有客户端自动回退到克隆
从原始服务器减轻这种情况。

因为捆绑托管失败时没有自动 Mercurial 服务器回退
服务,对于服务器运营商来说,将捆绑托管服务视为
Mercurial 服务器在可用性和服务水平协议方面的扩展:
如果捆绑托管服务出现故障,客户端克隆的能力也会下降。 笔记:
客户端将看到一条消息,通知他们如何绕过克隆捆绑工具,当
发生故障。 所以服务器运营商应该准备一些人遵循这些
发生故障时的指示,从而为原始 Mercurial 带来更多负载
捆绑托管服务失败时的服务器。

颜色
对某些命令的输出进行着色

颜色扩展为几个 Mercurial 命令的输出着色。 例如,
diff 命令以绿色显示添加,以红色显示删除,而 status 命令显示
以洋红色修改的文件。 许多其他命令具有类似的颜色。 有可能
自定义这些颜色。

效果
除了颜色之外的其他效果,如粗体和下划线文本,也可用。 经过
默认情况下,terminfo 数据库用于查找用于更改颜色的终端代码和
影响。 如果 terminfo 不可用,则使用 E​​CMA-48 SGR 渲染效果
控制函数(又名 ANSI 转义码)。

terminfo 模式下可用的效果有 'blink', 'bold', 'dim', 'inverse', 'invisible',
“斜体”、“突出”和“下划线”; 在 ECMA-48 模式下,选项有 'bold'、'inverse'、
“斜体”和“下划线”。 每个如何呈现取决于终端仿真器。 一些
可能不适用于给定的终端类型,并且将被忽略。

标签
文本根据其具有的标签接收颜色效果。 许多默认 Mercurial
命令发出带标签的文本。 您还可以使用
标签函数,见 hg 帮助 模板. 文本的单个部分可能有多个
标签。 在这种情况下,赋予最后一个标签的效果将覆盖任何其他效果。 这
包括特殊的“无”效果,它使其他效果无效。

标签通常是不可见的。 为了查看这些标签及其在
文本,使用全局 --color=debug 选项。 相同的锚文本可以关联到
多个标签,例如

[log.changeset changeset.secret|changeset: 22611:6f0a53c8f587]

以下是一些默认标签的默认效果。 默认效果可能是
从您的配置文件中覆盖:

[颜色]
status.modified = 蓝色粗体下划线 red_background
status. added = 绿色粗体
status.removed = 红色粗体 blue_background
status.deleted = 青色粗体下划线
status.unknown = 洋红色粗体下划线
status.ignored = 黑色粗体

# 'none' 关闭所有效果
status.clean = 无
status.copyed = 无

qseries.applied = 蓝色粗体下划线
qseries.unapplied = 黑色粗体
qseries.missing = 红色粗体

diff.diffline = 粗体
diff.extended = 青色粗体
diff.file_a = 红色粗体
diff.file_b = 绿色粗体
diff.hunk = 洋红色
diff.deleted = 红色
diff.inserted = 绿色
diff.changed = 白色
差异选项卡 =
diff.trailingwhitespace = 粗体红色背景

# 空白所以它继承了周围标签的样式
变更集.public =
变更集.draft =
变更集.secret =

resolve.unresolved = 红色粗体
resolve.resolved = 绿色粗体

书签.活动 = 绿色

分支.活动 = 无
分支.关闭=黑色粗体
分支.当前 = 绿色
分支.非活动 = 无

tags.normal = 绿色
tags.local = 黑色粗体

rebase.rebase = 蓝色
rebase.remaining = 红色粗体

搁置年龄 = 青色
shelve.newest = 绿色粗体
shelve.name = 蓝色粗体

histedit.remaining = 红色粗体

定制版 颜色
因为只有八种标准颜色,所以此模块允许您定义颜色名称
对于可能适用于您的终端类型的其他颜色插槽,假设 terminfo
模式。 例如:

颜色.亮蓝色 = 12
颜色.粉红色 = 207
颜色.橙色 = 202

将“brightblue”设置为颜色插槽 12(适用于具有更亮的 16 色终端
前八位中定义的颜色)以及 'pink' 和 'orange' 到 256 色 xterm 中的颜色
默认颜色立方体。 然后可以将这些定义的颜色用作任何预定义的颜色
八,包括附加'_background'以将背景设置为该颜色。

模式
默认情况下,颜色扩展将使用 ANSI 模式(或 Windows 上的 win32 模式),如果
检测到终端。 要覆盖自动模式(例如,启用 terminfo 模式),请设置
以下配置选项:

[颜色]
模式 = 术语信息

'ansi'、'win32'、'terminfo' 或 'auto' 以外的任何值都将禁用颜色。

请注意,在某些系统上,terminfo 模式可能会在将颜色与
寻呼机扩展和少 -R。 带有 -R 选项的 less 将仅显示 ECMA-48 颜色
代码,而 terminfo 模式有时可能会发出 less 不理解的代码。 你可以
通过使用 ansi 模式(或自动模式)或使用 less -r(这将
通过所有终端控制代码,而不仅仅是颜色控制代码)。

在某些系统上(如 Windows 中的 MSYS),终端可能支持不同的颜色模式
比寻呼机(通过“寻呼机”扩展激活)。 可以单独定义
取决于寻呼机是否处于活动状态的模式:

[颜色]
模式 = 自动
寻呼机= ansi

If 寻呼机模式 没有定义, 模式 将被使用。

命令
兑换
将外部 VCS 存储库中的修订版导入 Mercurial

命令
兑换
将外部 SCM 存储库转换为 Mercurial 存储库。:

hg 转换 [OPTION]... 源 [DEST [REVMAP]]

接受的源格式[标识符]:

· 汞 [hg]

· 简历[cvs]

·达尔克斯[darcs]

· 混帐[混帐]

·颠覆[svn]

·单调[mtn]

· GNU Arch [gnuarch]

· 集市[bzr]

· 执行力 [p4]

接受的目标格式[标识符]:

· 汞 [hg]

· Subversion [svn](不保留分支上的历史记录)

如果没有给出修订,则所有修订都将被转换。 否则,转换只会
导入到指定的修订版(以源理解的格式给出)。

如果未指定目标目录名称,则默认为源的基本名称
-汞 附加。 如果目标存储库不存在,则会创建它。

默认情况下,除 Mercurial 之外的所有源都将使用 --branchsort。 汞用途
--sourcesort 保留原始修订号顺序。 排序模式有以下几种
效果:

--分支排序
尽可能从父版本转换为子版本,这意味着分支是
通常一个接一个地转换。 它生成更紧凑的存储库。

--日期排序
按日期对修订进行排序。 转换后的存储库具有漂亮的变更日志,但
通常比 --branchsort 生成的相同数量级大一个数量级。

--来源排序
尝试保留源修订顺序,仅受 Mercurial 源支持。

--紧密排序
尝试将已关闭的修订版尽可能靠近父分支,仅
Mercurial 资源支持。

If 修订地图 没有给出,它将被放置在默认位置(/.hg/shamap by
默认)。 这 修订地图 是一个简单的文本文件,将每个源提交 ID 映射到
该修订的目标 ID,如下所示:



如果文件不存在,则会自动创建。 它在每个复制的提交上更新,
so hg 兑换 可以被中断并且可以重复运行以复制新的提交。

authormap 是一个简单的文本文件,它将每个源提交作者映射到目标
提交作者。 对于使用 unix 登录来识别作者的源 SCM 来说,这很方便(例如:
简历)。 每个作者映射一行,行格式为:

源作者 = 目的作者

空行和以 a 开头的行 # 被忽略了。

文件映射是允许过滤和重新映射文​​件和目录的文件。 每个
行可以包含以下指令之一:

包括路径/到/文件或目录

排除路径/到/文件或目录

重命名路径/到/源路径/到/目标

注释行以 #. 如果指定的路径等于完整的相对名称,则它匹配
文件或其父目录之一。 这 包括 or 排除 指令与
最长匹配路径适用,因此行顺序无关紧要。

包括 指令导致一个文件或目录下的所有文件包含在
目标存储库。 如果没有则默认 包括 陈述是包括
一切。 如果有的话 包括 声明,不包括其他内容。 这 排除
指令导致文件或目录被省略。 这 重命名 指令重命名文件
或目录(如果已转换)。 从子目录重命名到根目录
存储库,使用 . 作为重命名的路径。

- 满的 将确保转换后的变更集包含正确的文件
正确的内容。 它将完全转换所有文件,而不仅仅是那些
改变了。 已经正确的文件不会被更改。 这可以用来申请
增量转换时文件映射会发生变化。 目前仅支持
水银和颠覆。

splicemap 是一个允许插入合成历史的文件,让您指定
修改的父母。 如果你想给一个 Subversion 合并两个,这很有用
父母,或将两个不连贯的历史系列嫁接在一起。 每个条目都包含一个键,
后跟一个空格,后跟一个或两个逗号分隔值:

关键父 1,父 2

关键是源版本控制系统中的版本 ID,其父版本应该是
已修改(与 .hg/shamap 中的键格式相同)。 这些值是修订 ID(在任一
源或目标版本控制系统)应该用作新的父母
对于那个节点。 例如,如果您已将“release-1.0”合并到“trunk”中,那么您应该
将“主干”上的修订指定为第一个父版本,并将“release-1.0”上的版本指定为
分支作为第二个。

分支图是一个文件,允许您在引入分支时重命名分支
从任何外部存储库。 当与 splicemap 结合使用时,它允许
一个强大的组合来帮助修复即使是管理最糟糕的存储库和
将它们变成结构良好的 Mercurial 存储库。 分支图包含以下行
表格:

原始分支名称 新分支名称

其中“original_branch_name”是源存储库中分支的名称,并且
“new_branch_name”是分支的名称,是目标存储库。 没有空格
允许在分支名称中。 这可用于(例如)将代码移入一个
存储库从“默认”到命名分支。

水银 来源
Mercurial 源可识别以下配置选项,您可以对其进行设置
命令行与 --配置:

转换.hg.ignoreerrors
阅读时忽略完整性错误。 使用它来修复 Mercurial 存储库
通过从 Mercurial 转换为 Mercurial,缺少 revlogs。 默认为假。

转换.hg.saverev
将原始修订 ID 存储在变更集中(强制目标 ID 更改)。 它需要一个
布尔参数,默认为 False。

转换.hg.startrev
指定初始 Mercurial 版本。 默认值为 0。

转换.hg.revs
revset 指定要转换的源版本。

CVS 来源
CVS 源将使用 CVS 中的沙箱(即签出副本)来指示开始
点什么将被转换。 不需要直接访问存储库文件,
当然,除非存储库是 :当地的:. 转换使用顶级目录
沙箱找到 CVS 存储库,然后使用 CVS rlog 命令查找文件
转变。 这意味着除非给出文件映射,否则起始目录下的所有文件
将被转换,并且 CVS 沙箱中的任何目录重组都将被忽略。

以下选项可用于 --配置:

转换.cvsps.cache
设置为 False 以禁用远程日志缓存,用于测试和调试目的。
默认为真。

转换.cvsps.fuzz
指定提交之间允许的最长时间(以秒为单位)
单个变更集中的相同用户和日志消息。 当文件非常大时
作为变更集的一部分签入,则默认值可能不够长。 这
默认值为 60。

转换.cvsps.mergeto
指定与提交日志消息匹配的正则表达式。 如果一场比赛
发生,然后转换过程将插入一个虚拟修订合并分支
此日志消息出现在正则表达式中指示的分支上。 默认为
{{合并分支 ([-\w]+)}}

转换.cvsps.mergefrom
指定与提交日志消息匹配的正则表达式。 如果一场比赛
发生,则转换过程将在分支上添加最新修订
在正则表达式中表示为变更集的第二个父项。 默认为
{{从分支合并 ([-\w]+)}}

转换.localtimezone
使用本地时间(由 TZ 环境变量确定)作为变更集
日期/时间。 默认值为 False(使用 UTC)。

钩子.cvslog
指定在收集 CVS 日志结束时调用的 Python 函数。 这
函数传递一个包含日志条目的列表,并且可以修改条目
就地,或添加或删除它们。

钩子.cvschangesets
指定在从计算变更集后调用的 Python 函数
CVS 日志。 该函数传递了一个包含变更集条目的列表,并且可以修改
就地变更集,或者添加或删除它们。

附加的“debugcvsps”Mercurial 命令允许内置变更集合并代码
在不进行转换的情况下运行。 它的参数和输出类似于cvsps
2.1。 有关详细信息,请参阅命令帮助。

颠覆 来源
Subversion 源检测经典的主干/分支/标签布局。 默认情况下,提供的
svn://repo/路径/ 源 URL 被转换为单个分支。 如果 svn://repo/路径/trunk
存在它替换默认分支。 如果 svn://repo/路径/分支 存在,它的
子目录被列为可能的分支。 如果 svn://repo/路径/标签 存在,它是
寻找引用转换分支的标签。 默认 树干, 分支机构标签 价值观
可以用以下选项覆盖。 将它们设置为相对于源 URL 的路径,或者
将它们留空以禁用自动检测。

可以设置以下选项 --配置:

转换.svn.branches
指定包含分支的目录。 默认是 分支机构.

转换.svn.tags
指定包含标签的目录。 默认是 标签.

转换.svn.trunk
指定主干分支的名称。 默认是 树干.

转换.localtimezone
使用本地时间(由 TZ 环境变量确定)作为变更集
日期/时间。 默认值为 False(使用 UTC)。

可以从特定版本开始检索源历史记录,而不是
整体转换。 仅支持单分支转换。

转换.svn.startrev
指定开始 Subversion 修订号。 默认值为 0。

混帐 来源
Git 导入器转换来自所有可访问分支的提交(refs/heads 中的引用)和
遥控器(参考/遥控器中的参考)到 Mercurial。 分支被转换为书签
同名,去掉了前导的“refs/heads”。 Git 子模块转换为 Git
Mercurial 中的子存储库。

可以设置以下选项 --配置:

转换.git.similarity
指定必须如何将提交中修改的类似文件作为重命名导入或
份数,以百分比表示 0 (禁用)和 100 (文件必须相同)。 为了
例, 90 意味着删除/添加对将作为重命名导入,如果超过
90% 的文件没有改变。 默认是 50.

convert.git.findcopysharder
在检测副本时,查看工作副本中的所有文件,而不仅仅是
改变了。 这对于大型项目来说非常昂贵,并且仅在以下情况下才有效
转换.git.similarity 大于 0。默认为 False。

转换.git.remoteprefix
远程参考被转换为书签 转换.git.remoteprefix 作为前缀
其次是 /. 默认为“远程”。

convert.git.skip子模块
不转换根级 .gitmodules 文件或具有 160000 模式的文件表示
一个子模块。 默认为假。

强制执行 来源
Perforce (P4) 导入器可以被赋予一个 p4 仓库路径或客户端规范,如
来源。 它将源中的所有文件转换为平面 Mercurial 存储库,忽略
标签、分支和集成。 请注意,当给你一个仓库路径时,通常
应该指定一个目标目录,否则目标可能会被命名 ...-汞.

可以设置以下选项 --配置:

转换.p4.encoding
指定解码 Perforce 命令的标准输出时使用的编码
线工具。 默认为默认系统编码。

转换.p4.startrev
指定初始 Perforce 修订版(Perforce 更改列表编号)。

水银 目的地
Mercurial 目的地将识别目的地中的 Mercurial 子存​​储库
目录,并自动更新 .hgsubstate 文件,如果目标
子存储库包含//.hg/shamap 文件。 将存储库转换为
subrepositories 需要从下向上一次转换一个存储库。

显示如何使用子存储库转换存储库的示例:

# 所以 convert 在看到非空目标时就知道类型
$ hg 初始化转换

$ hg 转换 orig/sub1 转换/sub1
$ hg 转换 orig/sub2 转换/sub2
$ hg 转换 orig 转换

支持以下选项:

转换.hg.clonebranches
在单独的克隆中分派源分支。 默认值为假。

转换.hg.tagsbranch
标签修订的分支名称,默认为 默认.

转换.hg.usebranchnames
保留分支名称。 默认值为真。

转换.hg.sourcename
在每次提交时将给定字符串记录为“convert_source”额外值
目标存储库。 默认值为无。

所有类型 目的地
所有目的地类型都接受以下选项:

转换.skiptags
不会将标签从源代码库转换为目标代码库。 默认是
假。

选项:

--作者
用户名映射文件名(已弃用)(使用 --authormap 代替)

-是的,--源类型
源存储库类型

-d,--目标类型
目标存储库类型

-r,--rev
导入源修订版本 REV

-一种,--作者地图
使用此文件重新映射用户名

--文件映射
使用文件内容重新映射文​​件名

- 满的 通过再次转换所有文件来应用文件映射更改

--拼接图
将合成历史拼接到位

--分支图
转换时更改分支名称

--分支排序
尝试按分支对变更集进行排序

--日期排序
尝试按日期对变更集进行排序

--来源排序
保留源变更集顺序

--紧密排序
尝试重新排序已关闭的修订

[+] 标记选项可以多次指定

EOL
自动管理存储库文件中的换行符

此扩展允许您管理在
存储库和本地工作目录中。 这样你就可以得到 CRLF 行尾
在 Windows 上和 LF 上在 Unix/Mac 上,从而让每个人都使用他们的操作系统本机行结尾。

扩展从版本化读取其配置 .hgeol 配置文件在
工作目录的根目录。 这 .hgeol 文件使用与所有其他文件相同的语法
Mercurial 配置文件。 它使用两个部分, [图案][储存库].

[图案] 部分指定应如何在工作之间转换行尾
目录和存储库。 格式由文件模式指定。 第一场比赛
被使用,所以首先放置更具体的模式。 可用的行尾是 LF, CRLF
BIN.

具有声明格式的文件 CRLF or LF 总是签出并存储在
该格式的存储库和声明为二进制的文件(BIN) 保持不变。
此外, 本地人 是在平台的默认行尾中签出的别名:
LF 在 Unix(包括 Mac OS X)和 CRLF 在 Windows 上。 注意 BIN (什么都不做
endings) 是 Mercurial 的默认行为; 仅当您需要覆盖
后来,更一般的模式。

可选的 [储存库] section 指定用于存储在
存储库。 它有一个单一的设置, 本地人,它决定了存储行的结尾
对于声明为的文件 本地人 ,在 [图案] 部分。 可以设置为 LF or CRLF。 该
默认是 LF. 例如,这意味着在 Windows 上,文件配置为 本地人 (CRLF
默认情况下)将转换为 LF 当存储在存储库中时。 文件声明为 LF,
CRLFBIN ,在 [图案] 部分始终按原样存储在存储库中。

示例版本 .hgeol 文件:

[图案]
**.py = 本机
**.vcproj = CRLF
**.txt = 本机
生成文件 = LF
**.jpg = BIN

[储存库]
本机 = LF

注意 当文件在工作目录中被触及时,这些规则将首先应用,例如通过
更新为 null 并返回到小费以触摸所有文件。

扩展使用一个可选的 [停产] 从正常的 Mercurial 中读取的部分
配置文件和 .hgeol 文件,后者覆盖前者。 你可以
使用该部分来控制整体行为。 共有三种设置:

· 土生土长的 (默认 操作系统) 可以设置为 LF or CRLF 覆盖默认值
的解释 本地人 结帐。 这可以与 hg 档案 在 Unix 上,比如说,
生成一个档案,其中文件具有 Windows 的行尾。

· eol.only-一致 (默认 True) 可以设置为 False 以使扩展名转换
EOL 不一致的文件。 不一致意味着两者都有 CRLFLF 当下
在文件中。 这些文件通常不会被触及,假设它们有
故意混合 EOL。

· eol.fix 尾随换行符 (默认为 False)可以设置为 True 以确保转换后
文件以 EOL 字符结尾(或者 \n or \ r \ n 根据配置的模式)。

该扩展提供 聪明的编码:聪明的解码: 过滤器如已弃用
win32text 扩展名。 这意味着您可以禁用 win32text 并启用 eol 和
你的过滤器仍然可以工作。 在您准备好之前,您只需要这些过滤器
.hgeol 文件中。

win32text.禁止* win32text 扩展提供的 hooks 被统一为一个
单钩命名 eol.checkheadshook. 钩子将从中查找预期的行尾
.hgeol 文件,这意味着您必须迁移到 .hgeol 使用前先存档
钩。 eol.checkheadshook 只检查头,中间无效的修订将被推送。
要完全禁止它们,请使用 eol.checkallhook 钩。 这些钩子最好用作
pretxnchange 组 钩子。

我们 hg 帮助 模式 有关使用的 glob 模式的更多信息。

扩展差异
允许外部程序比较修订的命令

extdiff Mercurial 扩展允许您使用外部程序来比较修订,
或使用工作目录进行修订。 外部差异程序被调用
可配置的选项集和两个非选项参数:包含目录的路径
要比较的文件的快照。

extdiff 扩展还允许您配置新的 diff 命令,因此您不需要
输入 hg 扩展差异 -p 差异3 总是。

[扩展差异]
# 添加运行 GNU 的新命令 差异(1) 在“上下文差异”模式下
cdiff = gdiff -Nprc5
## 或旧方式:
#cmd.cdiff = gdiff
#opts.cdiff = -Nprc5

# 添加名为 meld 的新命令,运行 meld(无需命名两次)。 如果
# meld 可执行文件不可用,[merge-tools] 中的 meld 工具
# 将被使用,如果有的话
融合 =

# 添加名为 vimdiff 的新命令,使用 DirDiff 插件运行 gvimdiff
# (看 http://www.vim.org/scripts/script.php?script_id=102) 非
# 英文用户,请务必输入“let g:DirDiffDynamicDiffText = 1”
# 你的.vimrc
vimdiff = gvim -f "+下一个" \
"+执行'DirDiff' fnameescape(精液(0)) fnameescape(精液(1))”

工具参数可以包括在运行时扩展的变量:

$parent1, $plabel1 - 文件名,第一个父级的描述性标签
$child, $clabel - 文件名,子版本的描述性标签
$parent2, $plabel2 - 文件名,第二个父级的描述性标签
$root - 存储库根
$parent 是 $parent1 的别名。

extdiff 扩展将在您的 [diff-tools] 和 [merge-tools] 部分中查找差异
工具参数,当 [extdiff] 中未指定任何参数时。

[扩展差异]
kdiff3 =

[差异工具]
kdiff3.diffargs=--L1 '$plabel1' --L2 '$clabel' $parent $child

您可以像正常一样使用 -I/-X 和文件或目录名称列表 hg 差异 命令。 的
extdiff 扩展只对需要的文件进行快照,因此运行外部 diff
程序实际上会非常快(至少比必须比较整个
树)。

命令
扩展差异
使用外部程序来区分存储库(或选定的文件):

hg extdiff [选择]... [文件]...

使用外部程序显示指定文件的修订版本之间的差异。 这
使用的默认程序是 diff,默认选项为“-Npru”。

要选择不同的程序,请使用 -p/--program 选项。 该计划将通过
要比较的两个目录的名称。 要将附加选项传递给程序,请使用
-o/--选项。 这些将在要比较的目录名称之前传递。

当给出两个修订参数时,这些修订之间会显示更改。 如果
只指定了一个修订版,然后将该修订版与工作目录进行比较,
并且,当未指定修订时,将工作目录文件与其
父母

选项:

-p,- 程序
要运行的比较程序

-o,- 选项
将选项传递给比较程序

-r,--rev
调整

-C,- 改变
修改后的变化

- 修补
比较两个版本的补丁

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-S, --子仓库
递归到子存储库

[+] 标记选项可以多次指定

事实
使用 factotum 进行 http 身份验证

此扩展允许 事实(4) 计划 9 上的设施从贝尔实验室平台到
为 HTTP 访问提供身份验证信息。 中指定的配置条目
auth 部分以及存储库 URL 中提供的身份验证信息是
完全支持。 如果未指定前缀,则假定值为“*”。

默认情况下,键被指定为:

原型=通过服务=hg 前缀= 用户= !密码=

如果 factotum 扩展无法读取所需的密钥,将请求一个
交互地。

配置部分可用于自定义运行时行为。 默认情况下,这些
条目是:

[事实]
可执行文件 = /bin/auth/factotum
挂载点 = /mnt/factotum
服务 = 汞

可执行条目定义了事实二进制文件的完整路径。 挂载点条目
定义事实文件服务的路径。 最后,服务入口控制
读取密钥时使用的服务名称。


在一个命令中提取、更新和合并(已弃用)

命令

从远程存储库中提取更改,如果需要合并新更改。:

hg fetch [来源]

这将从指定路径或 URL 的存储库中查找所有更改并将它们添加到
本地存储库。

如果拉取的更改添加了新的分支头,则头会自动合并,并且
合并的结果被提交。 否则,工作目录将更新为包含
新的变化。

当需要合并时,首先将工作目录更新为新拉取的
变化。 然后将本地更改合并到拉取的更改中。 要切换合并顺序,
使用--switch-parent。

我们 hg 帮助 日期 获取对 -d/--date 有效的格式列表。

成功返回 0。

选项:

-r,--rev
您想提取的特定修订

-e, - 编辑
在提交消息上调用编辑器

--force-编辑器
编辑提交消息(已弃用)

--切换父级
合并时切换父级

-米,- 信息
使用文本作为提交消息

-l,--日志文件
从文件中读取提交消息

-d,- 日期
将指定日期记录为提交日期

-你,- 用户
将指定用户记录为提交者

-e,--ssh
指定要使用的 ssh 命令

--远程命令
指定要在远程端运行的 hg 命令

--不安全
不验证服务器证书(忽略 web.cacerts 配置)

[+] 标记选项可以多次指定

GPG
签署和验证变更集的命令

命令
sigcheck
验证特定修订版可能存在的所有签名:

汞信号检查 REV

验证特定版本可能存在的所有签名

签署
为当前或给定修订添加签名:

hg 符号 [选项]... [REV]...

如果没有给出修订,则使用工作目录的父目录,如果没有给出则提示
修订已签出。

gpg命令 config 设置可用于指定要运行的命令。 默认键可以是
指定为 gpg密钥.

我们 hg 帮助 日期 获取对 -d/--date 有效的格式列表。

选项:

-l, - 当地的
使签名本地化

-F, - 力量
即使 sigfile 被修改也要签名

--不提交
签名后不要提交 sigfile

-k,- 钥匙
用于签名的密钥 ID

-米,- 信息
使用文本作为提交消息

-e, - 编辑
在提交消息上调用编辑器

-d,- 日期
将指定日期记录为提交日期

-你,- 用户
将指定用户记录为提交者

信号
列出已签名的变更集:

汞信号

列出已签名的变更集

图形日志
从外壳查看修订图的命令(已弃用)

自 2.3 版以来,此扩展的功能已包含在核心 Mercurial 中。
请用 hg 日志 -G ... 代替。

此扩展为传入、传出和日志命令添加了 --graph 选项。 当这
给出了选项,还显示了修订图的 ASCII 表示。

命令
格洛格
在 ASCII 修订图旁边显示修订历史:

hg glog [选项]... [文件]

在使用 ASCII 字符绘制的修订图旁边打印修订历史。

打印为 @ 字符的节点是工作目录的父节点。

这是一个别名 hg 日志 -G.

选项:

-F, - 跟随
跟踪变更集历史或跨副本和重命名的文件历史

--先关注
仅遵循合并变更集的第一个父级(已弃用)

-d,- 日期
显示匹配日期规范的修订

-C, --副本
显示复制的文件

-k,- 关键词
对给定文本进行不区分大小写的搜索

-r,--rev
显示指定的修订版或修订版

--已删除
包括删除文件的修订

-米, --仅合并
仅显示合并(已弃用)

-你,- 用户
用户提交的修订

--only-分支
仅显示给定命名分支内的变更集(已弃用)

-b,- 分支
在给定的命名分支中显示变更集

-P,- 修剪
不显示修订版或其任何祖先

-p, - 修补
显示补丁

-G, --git
使用 git 扩展差异格式

-l,- 限制
限制显示的更改数量

-M, --不合并
不显示合并

--统计 输出 diffstat 样式的更改摘要

-G, - 图形
显示修订版 DAG

- 风格
使用模板地图文件显示(已弃用)

-T,- 模板
用模板展示

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

[+] 标记选项可以多次指定

华夏
用于与 CIA.vc 通知服务集成的钩子

这意味着作为变更组或传入挂钩运行。 要配置它,请设置
您的 hgrc 中的以下选项:

[中央情报局]
# 你注册的 CIA 用户名
用户 = foo
# CIA 中的项目名称
项目 = foo
# 模块(子项目)(可选)
#模块 = 富
# 将 diffstat 附加到日志消息(可选)
#diffstat = 假
# 用于日志消息的模板(可选)
#template = {desc}\n{baseurl}{webroot}/rev/{node}-- {diffstat}
# 要使用的样式(可选)
#style = 富
# CIA 通知服务的 URL(可选)
# 您可以使用 mailto: URLs 通过电子邮件发送,例如
# 站长:[电子邮件保护]
# 如果你这样做,请确保设置 email.from。
#网址= http://cia.vc/
# 打印消息而不是发送它(可选)
#test = 假
# url 路径的斜线数量
#条= 0

[钩子]
# 其中之一:
变更组.cia = python:hgcia.hook
#incoming.cia = python:hgcia.hook

[网络]
# 如果你想要超链接(可选)
基本网址 = http://server/path/to/repo

g
以图形方式浏览存储库

hgk 扩展允许以图形方式浏览存储库的历史记录。 它
需要 Tcl/Tk 版本 8.4 或更高版本。 (Tcl/Tk 不随 Mercurial 一起分发。)

hgk 由两部分组成:一个 Tcl 脚本,用于显示和查询
信息,以及一个名为 hgk.py 的 Mercurial 扩展,它为 hgk 提供挂钩
获取信息。 hgk 可以在 contrib 目录中找到,并且扩展已交付
在 hgext 存储库中,并且需要启用。

hg 查看 命令将启动 hgk Tcl 脚本。 要使此命令起作用,hgk 必须是
在您的搜索路径中。 或者,您可以在配置中指定 hgk 的路径
文件:

[hgk]
路径 = /location/of/hgk

hgk 可以利用 extdiff 扩展来可视化修订。 假设你有
已经配置了 extdiff vdiff 命令,只需添加:

[hgk]
vdiff=vdiff

修订上下文菜单现在将显示其他条目以在悬停时触发 vdiff 和
选定的修订。

命令
查看
启动交互式历史查看器:

hg 视图 [-l 限制] [REVRANGE]

启动交互式历史查看器

选项:

-l,- 限制
限制显示的更改数量

突出
hgweb 的语法高亮显示(需要 Pygments)

它取决于 Pygments 语法高亮库: http://pygments.org/

有以下配置选项:

[网络]
pygments_style = (default: colorful)
高亮文件 = (默认:大小('<5M'))
highlightonlymatch文件名= (默认为假)

highlightonlymatch文件名 仅当文件的类型可以通过以下方式识别时才会突出显示文件
他们的文件名。 如果未启用(默认),Pygments 将非常努力地
从内容和任何匹配项中识别文件类型(即使匹配项置信度低
分数)将被使用。

历史编辑
交互式历史编辑

安装此扩展后,Mercurial 获得了一个新命令:histedit。 用法如下
接下来,假设以下历史:

@ 3[提示] 7c2fd3b9020c 2009-04-27 18:04 -0500 durin42
| 添加增量
|
o 2 030b686bedc4 2009-04-27 18:04 -0500 杜林42
| 添加伽玛
|
o 1 c561b4e977df 2009-04-27 18:04 -0500 杜林42
| 添加测试版
|
o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 杜林42
添加阿尔法

如果你要跑 hg 历史编辑 c561b4e977df,您会看到以下文件在您的
编辑:

选择 c561b4e977df 添加测试版
选择 030b686bedc4 添加伽玛
选择 7c2fd3b9020c 添加增量

# 编辑 c561b4e977df 和 7c2fd3b9020c 之间的历史记录
#
# 提交从最少到最近列出
#
# 命令:
# p, pick = 使用提交
# e, edit = 使用提交,但停止修改
# f, fold = 使用提交,但与上面的结合
# r, roll = 类似折叠,但丢弃该提交的描述
# d, drop = 从历史记录中删除提交
# m, mess = 编辑提交消息而不更改提交内容
#

在这个文件中,以 # 被忽略。 您必须为每个
修改你的历史。 例如,如果您打算在 beta 之前添加 gamma,然后
想要在与 beta 相同的版本中添加 delta,您将重新组织文件以查看
喜欢这个:

选择 030b686bedc4 添加伽玛
选择 c561b4e977df 添加测试版
折叠 7c2fd3b9020c 添加增量

# 编辑 c561b4e977df 和 7c2fd3b9020c 之间的历史记录
#
# 提交从最少到最近列出
#
# 命令:
# p, pick = 使用提交
# e, edit = 使用提交,但停止修改
# f, fold = 使用提交,但与上面的结合
# r, roll = 类似折叠,但丢弃该提交的描述
# d, drop = 从历史记录中删除提交
# m, mess = 编辑提交消息而不更改提交内容
#

此时您关闭编辑器并 历史编辑 开始工作。 当您指定一个
操作中, 历史编辑 将这些修订折叠在一起时将打开一个编辑器,提供
你有机会清理提交消息:

添加测试版
***
添加增量

根据自己的喜好编辑提交消息,然后关闭编辑器。 对于这个例子,让我们
假设提交消息已更改为 地址 测试 三角洲。 histedit 运行后
并有机会删除它需要的任何旧的或临时的修订,历史看起来
喜欢这个:

@ 2[提示] 989b4d060121 2009-04-27 18:04 -0500 durin42
| 添加 beta 和 delta。
|
o 1 081603921c3f 2009-04-27 18:04 -0500 期间42
| 添加伽玛
|
o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 杜林42
添加阿尔法

需要注意的是 历史编辑不能 删除任何修订(甚至是它自己的临时修订),直到之后
它已经完成了所有的编辑操作,所以它可能会执行几个strip
完成后的操作。 对于上面的例子,它必须运行两次 strip。 条带可以
缓慢取决于多种因素,因此您可能需要一点耐心。 你可以
通过 - 保持 旗。

编辑 操作将使您回到命令提示符,允许您编辑文件
自由地,甚至使用 hg 记录 将一些更改作为单独的提交提交。 当你在
完成后,任何剩余的未提交更改也将被提交。 完成后,运行 hg
历史编辑 - 继续 完成这一步。 系统会提示您输入新的提交消息,但是
默认提交消息将是原始消息 编辑 ed 修订。

的话 操作将使您有机会在不更改的情况下修改提交消息
内容。 这是做事的捷径 编辑 紧接着 hg 历史编辑
--继续`.

If 历史编辑 移动修订时遇到冲突(在处理 or ),
它会以类似的方式停止 编辑 不同之处在于它不会提示您
完成后提交消息。 如果你在这一点上决定你不喜欢做多少工作
将重新排列历史,或者你犯了一个错误,你可以使用 hg 历史编辑 --中止
放弃您所做的新更改并返回到您尝试更改之前的状态
编辑您的历史记录。

如果我们克隆上面的 histedit-ed 示例存储库并添加另外四个更改,例如
我们有以下历史:

@6[提示] 038383181893 2009-04-27 18:04 -0500 stefan
| 添加θ
|
o 5 140988835471 2009-04-27 18:04 -0500 斯蒂芬
| 添加 eta
|
o 4 122930637314 2009-04-27 18:04 -0500 斯蒂芬
| 添加 zeta
|
o 3 836302820282 2009-04-27 18:04 -0500 斯蒂芬
| 添加ε
|
o 2 989b4d060121 2009-04-27 18:04 -0500 杜林42
| 添加 beta 和 delta。
|
o 1 081603921c3f 2009-04-27 18:04 -0500 期间42
| 添加伽玛
|
o 0 d8d2fcd0e319 2009-04-27 18:04 -0500 杜林42
添加阿尔法

如果你跑步 hg 历史编辑 ——外向 在克隆上然后它与运行相同 hg 历史编辑
836302820282. 如果您需要计划推送到 Mercurial 未检测到的存储库
与源代码库相关,您可以添加一个 - 力量 选项。

配置
Histedit 规则行默认被截断为 80 个字符。 你可以自定义这个
通过在配置文件中设置不同的长度来行为:

[历史编辑]
linelen = 120 # 在 120 个字符处截断规则行

hg 历史编辑 尝试自动选择要使用的适当基础修订版。 到
更改使用的基本修订版,在配置文件中定义一个修订版:

[历史编辑]
defaultrev = only(.) & 草稿()

默认情况下,每个编辑的版本都需要出现在 histedit 命令中。 去除
您需要使用的修订版 下降 手术。 您可以将 drop 配置为隐式
通过添加缺少提交:

[历史编辑]
dropmissing = 真

命令
历史编辑
交互式编辑变更集历史:

hg histedit [选项] ([ANCESTOR] | --outgoing [URL])

此命令允许您编辑一系列线性变更集(直到并包括工作
目录,应该是干净的)。 你可以:

· [重新]订购变更集

· 下降 省略变更集

· 混乱 改写变更集提交消息

· 将它与前面的变更集结合起来

· 滚动 像折叠,但丢弃了这个提交的描述

· 编辑 编辑此变更集

有多种方法可以选择根变更集:

· 直接指定 ANCESTOR

· 使用 --outgoing -- 它将是第一个不包含在目标中的线性变更集。
(见 hg 帮助 config.default-推送)

· 否则,“histedit.defaultrev”配置选项中的值用作修订集以
未指定 ANCESTOR 时选择基本版本。 返回的第一个修订版本
使用修订集。 默认情况下,这会选择唯一的可编辑历史
工作目录的祖先。

如果您使用 --outgoing,如果存在不明确的传出修订,此命令将中止。
例如,如果有多个包含传出修订的分支。

使用 "min(outgoing() and ::.)" 或类似的 revset 规范而不是 --outgoing
在这种模棱两可的情况下准确指定编辑目标修订。 看 hg 帮助 调整
有关选择修订的详细信息。

例子:

· 进行了许多更改。 不再需要修订版 3。

从修订版 3 开始历史编辑:

汞 histedit -r 3

将打开一个编辑器,其中包含修订列表,并指定了特定操作:

选择 5339bf82f0ca 3 Zworgle the foobar
选择 8ef592ce7c​​c4 4 迷惑 zerlog
选择 0a9639fcda9d 5 修改 cromulancy

有关可能采取的措施的其他信息显示在列表下方
修订。

要从历史记录中删除修订版 3,其操作(在相关的开头
行)更改为“丢弃”:

掉落 5339bf82f0ca 3 Zworgle foobar
选择 8ef592ce7c​​c4 4 迷惑 zerlog
选择 0a9639fcda9d 5 修改 cromulancy

· 进行了许多更改。 修订版 2 和修订版 4 需要交换。

从修订版 2 开始历史编辑:

汞 histedit -r 2

将打开一个编辑器,其中包含修订列表,并指定了特定操作:

选择 252a1af424ad 2 Blorb a morgwazzle
选择 5339bf82f0ca 3 Zworgle the foobar
选择 8ef592ce7c​​c4 4 迷惑 zerlog

为了交换修订 2 和 4,它的行在编辑器中交换:

选择 8ef592ce7c​​c4 4 迷惑 zerlog
选择 5339bf82f0ca 3 Zworgle the foobar
选择 252a1af424ad 2 Blorb a morgwazzle

成功返回 0,如果需要用户干预则返回 1(不仅用于有意的“编辑”
命令,但也用于解决意外冲突)。

选项:

--命令
从指定文件读取历史编辑

-C, - 继续
继续正在进行的编辑

--编辑计划
编辑剩余动作列表

-k, - 保持
编辑完成后不要剥离旧节点

--中止
中止正在进行的编辑

-o, ——外向
在目标中找不到变更集

-F, - 力量
即使对于不相关的存储库也强制传出

-r,--rev
待编辑的第一次修订

[+] 标记选项可以多次指定

关键词
扩展跟踪文件中的关键字

此扩展在跟踪的文本文件中扩展了类似 RCS/CVS 或自定义的 $Keywords$
由您的配置选择。

关键字仅在本地存储库中扩展,而不存储在更改历史记录中。 这
机制可以看作是方便当前用户或存档
分布。

关键字扩展到与最新更改相关的更改集数据
每个文件的工作目录父级。

配置在 hgrc 的 [keyword]、[keywordset] 和 [keywordmaps] 部分完成
文件。

示例:

[关键词]
# 在每个 python 文件中展开关键字,除了那些匹配 "x*" 的关键字
**.py=
x* = 忽略

[关键词集]
# 更喜欢 svn- 而不是类似 cvs 的默认关键字映射
svn = 真

注意您的文件名模式越具体,您在大量文件中失去的速度就越少
仓库。

用于[keywordmaps]模板映射和扩展演示和控制运行 hg 演示版.
我们 hg 帮助 模板 获取可用模板和过滤器的列表。

提供了三个额外的日期模板过滤器:

更新日期

"2006/09/18 15:13:13"

svnutcate

"2006-09-18 15:13:13Z"

莨菪碱

“2006-09-18 08:13:13 -700(18 年 2006 月 XNUMX 日星期一)”

默认模板映射(查看 hg 演示版 -d) 可以替换为定制的
关键字和模板。 再次,运行 hg 演示版 控制配置的结果
的变化。

在更改/禁用有效关键字之前,您必须运行 hg 收缩 避免储存
更改历史记录中的扩展关键字。

要在启用它或更改配置后强制扩展,请运行 hg 夸大.

跨越多行的扩展和增量扩展,如 CVS 的 $Log$,是
不支持。 关键字模板映射“Log = {desc}”扩展到
变更集描述。

命令
演示版
print [keywordmaps] 配置和扩展示例:

hg kwdemo [-d] [-f RCFILE] [模板图]...

显示当前、自定义或默认关键字模板映射及其扩展。

通过将映射指定为参数并使用 -f/--rcfile 来扩展当前配置
获取外部 hgrc 文件。

使用 -d/--default 禁用当前配置。

我们 hg 帮助 模板 有关模板和过滤器的信息。

选项:

-d, - 默认
显示默认关键字模板映射

-F,--rc文件
从 rcfile 读取地图

夸大
在工作目录中展开关键字:

hg kwexpand [选项]... [文件]...

在(重新)启用关键字扩展之后运行。

如果给定文件包含本地更改,kwexpand 将拒绝运行。

选项:

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

[+] 标记选项可以多次指定

kw文件
显示为关键字扩展配置的文件:

hg kwfiles [选项]... [文件]...

列出工作目录中哪些文件与 [keyword] 配置匹配
图案。

有助于防止无意的关键字扩展并通过包含来加快执行速度
仅作为实际扩展候选的文件。

我们 hg 帮助 关键词 关于如何构建包含和排除的模式
文件。

使用 -A/--all 和 -v/--verbose 用于显示文件状态的代码是:

K = 关键字扩展候选
k = 关键字扩展候选(未跟踪)
我 = 忽略
i = 忽略(不跟踪)

选项:

-一种, - 全部
显示所有文件的关键字状态标志

-一世, - 忽略
显示从扩展中排除的文件

-你, - 未知
仅显示未知(未跟踪)文件

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

[+] 标记选项可以多次指定

收缩
恢复工作目录中的扩展关键字:

hg kwshrink [选项]... [文件]...

必须在更改/禁用活动关键字之前运行。

如果给定文件包含本地更改,kwshrink 将拒绝运行。

选项:

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

[+] 标记选项可以多次指定

大文件
跟踪大型二进制文件

大型二进制文件往往不是很可压缩,不是很容易区分,而且根本不是
可合并。 Mercurial 的存储格式 (revlog) 无法有效处理此类文件,
它基于压缩的二进制增量; 以常规方式存储大型二进制文件
Mercurial 文件会浪费带宽和磁盘空间并增加 Mercurial 的内存使用量。
largefiles 扩展通过添加一个集中的客户端-服务器来解决这些问题
Mercurial 之上的层:大文件位于 中央 商店 在网络上
某个地方,并且您只在需要时获取所需的修订。

largefiles 通过在 .hglf/ 中为每个大文件维护一个“备用文件”来工作。 这
替身很小(41 字节:一个 SHA-1 哈希加上换行符)并且由 Mercurial 跟踪。
大文件修订由其内容的 SHA-1 哈希标识,写入
到替补席。 largefiles 使用该修订 ID 从/到获取/放置大文件修订
中央商店。 这节省了磁盘空间和带宽,因为您不需要
克隆或拉取时检索大文件的所有历史修订。

要启动新的存储库或添加新的大型二进制文件,只需将 --large 添加到您的 hg
命令。 例如:

$ dd if=/dev/urandom of=随机数据计数=2000
$ hg 添加--大随机数据
$ hg commit -m '将随机数据添加为大文件'

当您将添加/修改大文件的变更集推送到远程存储库时,它的
大文件修订将与它一起上传。 请注意,远程 Mercurial 必须
还为此启用了 largefiles 扩展名。

当您从远程存储库中提取影响大文件的变更集时,大文件
因为默认情况下不会下拉变更集。 但是,当您更新到这样的
修订版,该修订版所需的任何大文件都会被下载并缓存(如果它们有
以前从未下载过)。 因此,在拉动时拉动大文件的一种方法是使用
--update,它将您的工作副本更新为最新的拉取修订版(从而
下载任何新的大文件)。

如果你想拉取不需要更新的大文件,那么你可以使用 pull with
--lfrev 选项还是 hg 拉力 命令。

如果您知道您正在从非默认位置拉取并想要下载所有
同时对应于新变更集的大文件,然后您可以使用
--lfrev “拉()”.

如果您只是想确保您将拥有合并或变基所需的大文件
用你正在拉的新头,然后你可以拉 --lfrev “头(拉())”
抢先下载您正在提取的头部中的任何新大文件。

请记住,现在可能需要网络访问才能更新到您拥有的变更集
以前没有更新到。 largefiles 扩展的性质意味着更新是
不再保证是仅限本地操作。

如果您已经有 Mercurial 跟踪的没有大文件扩展名的大文件,您
将需要转换您的存储库才能从大文件中受益。 这个完成了
hg 转换 命令:

$ hg lfconvert --size 10 旧仓库 新仓库

在已经有大文件的存储库中,任何超过 10MB 的新文件都将
自动添加为大文件。 要更改此阈值,请设置 大文件.minsize in
您的 Mercurial 配置文件以兆字节为单位的最小大小作为大文件进行跟踪,或者
在 add 命令中使用 --lfsize 选项(同样以兆字节为单位):

[大文件]
最小尺寸 = 2

$ hg 添加--lfsize 2

大文件.模式 config 选项允许您指定文件名模式列表
(见 hg 帮助 模式) 应始终作为大文件进行跟踪:

[大文件]
模式 =
* .jpg
回复:.*\.(png|bmp)$
图书馆.zip
内容/音频/*

与这些模式之一匹配的文件将被添加为大文件,无论它们的
大小。

大文件.minsize大文件.模式 任何配置选项都将被忽略
尚未包含大文件的存储库。 将第一个大文件添加到
存储库,您必须使用传递给 hg 命令。

命令
转换
将普通存储库转换为大文件存储库:

hg lfconvert SOURCE DEST [文件 ...]

将存储库 SOURCE 转换为新的存储库 DEST,与 SOURCE 相同,不同之处在于
某些文件将被转换为大文件:具体来说,任何匹配任何文件的文件
模式 or 其大小高于最小大小阈值的文件将被转换为大文件。 这
size 用于确定是否将文件作为大文件进行跟踪是文件的大小
文件的第一个版本。 可以使用 --size 或 in 指定最小大小
配置为 大文件.size.

运行此命令后,您需要确保在任何地方都启用了大文件
您打算推送新的存储库。

使用 --to-normal 将大文件转换回普通文件; 在此之后,DEST
存储库可以在没有大文件的情况下使用。

选项:

-是的,- 尺寸
要转换为大文件的文件的最小大小 (MB)

--正常
从 largefiles 存储库转换为普通存储库

拉力
从指定来源拉取指定修订版的大文件:

hg lfpull -r REV... [-e CMD] [--remotecmd CMD] [源]

拉取从本地变更集中引用但在本地丢失的大文件,拉取
从远程存储库到本地缓存。

如果省略 SOURCE,则将使用“默认”路径。 看 hg 帮助 网址 更多
信息。

一些例子:

· 为所有分支头拉大文件:

hg lfpull -r "head() 并且没有关闭()"

· 在默认分支上拉大文件:

hg lfpull -r “分支(默认)”

选项:

-r,--rev
为这些修订拉取大文件

-e,--ssh
指定要使用的 ssh 命令

--远程命令
指定要在远程端运行的 hg 命令

--不安全
不验证服务器证书(忽略 web.cacerts 配置)

[+] 标记选项可以多次指定

mq
管理一堆补丁

此扩展允许您使用 Mercurial 存储库中的一堆补丁。 它管理
两堆补丁 - 所有已知补丁和应用补丁(已知补丁的子集)。

已知补丁表示为 .hg/patches 目录中的补丁文件。 应用补丁
既是补丁文件又是变更集。

常见任务(使用 hg 帮助 命令 更多细节):

创建新补丁 qnew
导入现有补丁 qimport

打印补丁系列 qseries
打印应用的补丁 qapplied

将已知补丁添加到应用堆栈 qpush
从应用堆栈 qpop 中删除补丁
刷新顶部应用补丁 qrefresh 的内容

默认情况下,mq 会在需要时自动使用 git 补丁,以避免丢失文件模式
更改、复制记录、二进制文件或空文件的创建或删除。 这种行为
可以配置:

[MQ]
git =自动/保持/是/否

如果设置为 'keep',mq 将遵循 [diff] 部分配置,同时保留现有的
qrefresh 上的 git 补丁。 如果设置为 'yes' 或 'no',mq 将覆盖 [diff] 部分
并始终生成 git 或常规补丁,在第二种情况下可能会丢失数据。

可能需要将 mq 变更集保存在秘密阶段(请参阅 hg 帮助 阶段),
可以通过以下设置启用:

[MQ]
秘密=真

默认情况下,您将管理一个名为“补丁”的补丁队列。 您可以创建其他,
独立的补丁队列与 hg 队列 命令。

如果工作目录包含未提交的文件,qpush、qpop 和 qgoto abort
立即地。 如果使用 -f/--force,则丢弃更改。 环境:

[MQ]
保持变化 = 真

使它们表现得好像 --keep-changes 已通过,并且非冲突的本地更改将
被容忍和保存。 如果不兼容的选项,例如 -f/--force 或 --exact
通过,此设置将被忽略。

此扩展用于提供条带命令。 该命令现在位于条带中
延期。

命令
已应用
打印已经应用的补丁:

hg qapplied [-1] [-s] [补丁]

成功返回 0。

选项:

- 1, - 最后的
仅显示前面应用的补丁

-是的, - 概括
打印补丁标题的第一行

克隆
同时克隆主库和补丁库:

hg qclone [选项] ...源 [DEST]

如果源是本地的,则目标将不应用任何补丁。 如果源是远程的,这个
命令无法检查是否在源代码中应用了补丁,因此不能保证补丁
不适用于目的地。 如果您克隆远程存储库,请确保在此之前它具有
没有应用补丁。

在中查找源补丁存储库/.hg/patches 默认情况下。 使用 -p 到
改变。

补丁目录必须是一个嵌套的 Mercurial 存储库,由 hg 初始化
--mq.

成功返回 0。

选项:

- 拉 使用 pull 协议复制元数据

-U, --无更新
不要更新新的工作目录

--未压缩
使用未压缩传输(通过 LAN 快速传输)

-p,--补丁
源补丁存储库的位置

-e,--ssh
指定要使用的 ssh 命令

--远程命令
指定要在远程端运行的 hg 命令

--不安全
不验证服务器证书(忽略 web.cacerts 配置)

提交
在队列存储库中提交更改(已弃用):

hg qcommit [选项]... [文件]...

该命令已弃用; 采用 hg 承诺 --mq 代替。

选项:

-一种, --添加删除
在提交之前将新的/丢失的文件标记为添加/删除

--关闭分支
将分支头标记为关闭

- 修正
修改工作目录的父目录

-是的, - 秘密
使用秘密阶段进行提交

-e, - 编辑
在提交消息上调用编辑器

-一世, - 交互的
使用交互模式

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-米,- 信息
使用文本作为提交消息

-l,--日志文件
从文件中读取提交消息

-d,- 日期
将指定日期记录为提交日期

-你,- 用户
将指定用户记录为提交者

-S, --子仓库
递归到子存储库

[+] 标记选项可以多次指定

别名:qci

删除
从队列中删除补丁:

hg qdelete [-k] [补丁]...

不得应用补丁程序,并且至少需要一个补丁程序。 确切的补丁
必须给出标识符。 使用-k/--keep,补丁文件保存在补丁中
目录。

要停止管理补丁并将其移至永久历史记录,请使用 hg 完成 命令。

选项:

-k, - 保持
保留补丁文件

-r,--rev
停止管理修订(已弃用)

[+] 标记选项可以多次指定

别名:qremove qrm

差异
当前补丁和后续修改的差异:

hg qdiff [选项]... [文件]...

显示一个差异,其中包括当前补丁以及所做的任何更改
自上次刷新以来的工作目录中(从而显示当前补丁将
在 qrefresh 后变为)。

使用 hg 差异 如果您只想查看自上次 qrefresh 以来所做的更改,或者 hg 出口
提示 如果您想查看当前补丁所做的更改而不包括所做的更改
自 qrefresh 以来。

成功返回 0。

选项:

-一种, - 文本
将所有文件视为文本

-G, --git
使用 git 扩展差异格式

--节点
从差异标头中省略日期

--无前缀
从文件名中省略 a/ 和 b/ 前缀

-p, --显示功能
显示每个更改在哪个函数中

- 逆转
产生一个撤消更改的差异

-w, --忽略所有空间
比较行时忽略空格

-b, --忽略空间变化
忽略空白量的变化

-B, --忽略空白行
忽略所有行都是空白的更改

-U,- 统一
要显示的上下文行数

--统计 输出 diffstat 样式的更改摘要

- 根
产生相对于子目录的差异

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

[+] 标记选项可以多次指定

完成
将应用的补丁移动到存储库历史记录中:

hg qfinish [-a] [REV]...

通过将它们移出来完成指定的修订(对应于应用的补丁)
mq 控制到常规存储库历史记录中。

接受修订范围或 -a/--applied 选项。 如果指定了 --applied,则所有
应用的 mq 修订从 mq 控制中删除。 否则,给定的修订必须是
在应用补丁堆栈的底部。

如果您的更改已应用于上游存储库,这将特别有用,
或者如果您要将更改推送到上游。

成功返回 0。

选项:

-一种, --应用
完成所有应用的变更集

折叠
将命名补丁折叠到当前补丁中:

hg qfold [-e] [-k] [-m TEXT] [-l 文件] 补丁...

补丁必须尚未应用。 每个补丁将依次应用于当前
按照给定的顺序打补丁。 如果所有补丁都成功应用,则当前补丁将是
用新的累积补丁刷新,折叠的补丁将被删除。 和
-k/--keep,折叠后的补丁文件不会被删除。

每个折叠补丁的标题将与当前补丁标题连接,
由一行分隔 * * *.

成功返回 0。

选项:

-e, - 编辑
在提交消息上调用编辑器

-k, - 保持
保留折叠的补丁文件

-米,- 信息
使用文本作为提交消息

-l,--日志文件
从文件中读取提交消息

q转到
推送或弹出补丁,直到命名补丁位于堆栈顶部:

hg qgoto [选项] ...补丁

成功返回 0。

选项:

--保持变化
容忍非冲突的本地更改

-F, - 力量
覆盖任何本地更改

--无备份
不保存文件的备份副本

卫士
为补丁设置或打印防护:

hg qguard [-l] [-n] [补丁] [-- [+GUARD]... [-GUARD]...]

守卫控制是否可以推送补丁。 总是推送没有守卫的补丁。 一种
只有当 hg QSELECT 命令有
激活它。 如果 hg QSELECT
命令已激活它。

不带参数,打印当前活动的守卫。 使用参数,为
命名补丁。

注意现在指定负保护需要'--'。

在另一个补丁上设置守卫:

hg qguard other.patch -- +2.6.17 -稳定

成功返回 0。

选项:

-l, - 列表
列出所有补丁和守卫

-n, - 没有任何
放下所有警卫

头文件
打印最顶层或指定补丁的标题:

hg qheader [补丁]

成功返回 0。

进口
导入补丁或现有变更集:

hg qimport [-e] [-n 名称] [-f] [-g] [-P] [-r REV]... [文件]...

在最后应用的补丁之后将补丁插入到系列中。 如果没有补丁
已应用, qimport 将补丁添加到系列中。

补丁将与其源文件同名,除非你给它一个新的
-n/--名称。

您可以使用 -e/--existing 标志在补丁目录中注册现有补丁。

使用 -f/--force,将覆盖现有的同名补丁。

可以使用 -r/--rev 将现有的变更集置于 mq 控制之下(例如 qimport --rev 。
-n patch 将当前版本置于 mq 控制之下)。 使用 -g/--git,补丁
使用 --rev 导入将使用 git diff 格式。 有关信息,请参阅差异帮助主题
为什么这对于保留重命名/复制信息和权限更改很重要。
使用 hg 完成 从 mq 控件中删除变更集。

要从标准输入导入补丁,请将 - 作为补丁文件传递。 从导入时
标准输入,必须使用 --name 标志指定补丁名称。

要在重命名现有补丁时导入它:

hg qimport -e 现有补丁 -n 新名称

如果导入成功,则返回 0。

选项:

-e, - 现存的
在补丁目录中导入文件

-n,- 姓名
补丁文件名

-F, - 力量
覆盖现有文件

-r,--rev
将现有修订置于 mq 控制之下

-G, --git
使用 git 扩展差异格式

-P, - 推
qpush 导入后

[+] 标记选项可以多次指定

初始化
初始化一个新的队列存储库(已弃用):

汞 qinit [-c]

默认情况下,队列存储库是未版本化的。 如果指定了 -c/--create-repo,qinit
将为补丁创建一个单独的嵌套存储库(qinit -c 也可以稍后运行以
将未版本化的补丁存储库转换为版本化的)。 您可以使用 qcommit
提交对此队列存储库的更改。

此命令已弃用。 如果没有 -c,它会被其他相关命令所暗示。 用-c,
使用 hg 初始化 --mq 代替。

选项:

-C, --create-回购
创建队列存储库


创建一个新补丁:

hg qnew [-e] [-m 文本] [-l 文件] 补丁 [文件]...

qnew 在当前应用的补丁(如果有的话)之上创建一个新补丁。 该补丁将是
使用工作目录中的任何未完成的更改进行初始化。 你也可以使用
-I/--include、-X/--exclude 和/或仅添加的补丁名称后的文件列表
将匹配文件更改为新补丁,其余部分作为未提交的修改。

-u/--user 和 -d/--date 可用于分别设置(给定的)用户和日期。
-U/--currentuser 和 -D/--currentdate 将用户设置为当前用户,将日期设置为当前日期。

-e/--edit, -m/--message 或 -l/--logfile 设置补丁头和提交
信息。 如果未指定,则标头为空且提交消息为 '[mq]:
修补'。

使用 -g/--git 选项将补丁保持为 git 扩展差异格式。 阅读差异
帮助主题以获取有关为什么这对于保留权限更改很重要的更多信息
和复制/重命名信息。

成功创建新补丁时返回 0。

选项:

-e, - 编辑
在提交消息上调用编辑器

-F, - 力量
导入未提交的更改(已弃用)

-G, --git
使用 git 扩展差异格式

-U, - 当前用户
添加“来自: "打补丁

-你,- 用户
添加“来自: "打补丁

-D, - 当前日期
添加“日期: "打补丁

-d,- 日期
添加“日期: "打补丁

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-米,- 信息
使用文本作为提交消息

-l,--日志文件
从文件中读取提交消息

[+] 标记选项可以多次指定

qnext在
打印下一个可推送补丁的名称:

汞 qnext [-s]

成功返回 0。

选项:

-是的, - 概括
打印补丁标题的第一行

快闪
从堆栈中弹出当前补丁:

hg qpop [-a] [-f] [补丁 | 指数]

没有参数,从补丁堆栈的顶部弹出。 如果给定补丁名称,则保留
弹出补丁,直到命名补丁位于堆栈顶部。

默认情况下,如果工作目录包含未提交的更改,则中止。 和
--keep-changes,仅当未提交的文件与修补文件重叠时中止。 和
-f/--force,备份和放弃对此类文件所做的更改。

成功返回 0。

选项:

-一种, - 全部
弹出所有补丁

-n,- 姓名
要弹出的队列名称(已弃用)

--保持变化
容忍非冲突的本地更改

-F, - 力量
忘记对修补文件的任何本地更改

--无备份
不保存文件的备份副本

上一页
打印前面应用的补丁的名称:

汞 qprev [-s]

成功返回 0。

选项:

-是的, - 概括
打印补丁标题的第一行

推送
将下一个补丁压入堆栈:

hg qpush [-f] [-l] [-a] [--move] [PATCH | 指数]

默认情况下,如果工作目录包含未提交的更改,则中止。 和
--keep-changes,仅当未提交的文件与修补文件重叠时中止。 和
-f/--force,备份和修补未提交的更改。

成功返回 0。

选项:

--保持变化
容忍非冲突的本地更改

-F, - 力量
在本地更改之上应用

-e, - 精确的
将目标补丁应用到其记录的父级

-l, - 列表
在提交文本中列出补丁名称

-一种, - 全部
应用所有补丁

-米, - 合并
从另一个队列合并(已弃用)

-n,- 姓名
合并队列名称(已弃用)

- 移动 重新排序补丁系列并仅应用补丁

--无备份
不保存文件的备份副本

队列
管理多个补丁队列:

hg 队列 [选项] [队列]

支持在不同的补丁队列之间切换,以及创建新的补丁队列
并删除现有的。

省略队列名称或指定 -l/--list 将显示已注册的队列 - 通过
默认注册“正常”补丁队列。 当前活动的队列将是
标有“(活动)”。 指定 --active 将仅打印活动队列的名称。

要创建新队列,请使用 -c/--create。 队列自动激活,除了在
从当前活动队列中应用补丁的情况
存储库。 然后只会创建队列,切换会失败。

要删除现有队列,请使用 --delete。 您不能删除当前活动的队列。

成功返回 0。

选项:

-l, - 列表
列出所有可用队列

- 积极的
打印活动队列的名称

-C, - 创建
创建新队列

- 改名
重命名活动队列

- 删除
删除对队列的引用

- 清除
删除队列,并删除补丁目录

刷新
更新当前补丁:

hg qrefresh [-I] [-X] [-e] [-m TEXT] [-l 文件] [-s] [文件]...

如果提供了任何文件模式,则刷新的补丁将仅包含修改
匹配那些模式; 其余的修改将保留在工作中
目录。

如果指定了-s/--short,当前包含在补丁中的文件将被刷新
喜欢匹配的文件并保留在补丁中。

如果指定了 -e/--edit,Mercurial 将启动您配置的编辑器供您输入
信息。 如果 qrefresh 失败,您将在
.hg/最后一条消息.txt.

hg add/remove/copy/rename 照常工作,尽管您可能想使用 git 样式的补丁
(-g/--git 或 [diff] git=1)跟踪副本和重命名。 有关更多信息,请参阅差异帮助主题
有关 git diff 格式的信息。

成功返回 0。

选项:

-e, - 编辑
在提交消息上调用编辑器

-G, --git
使用 git 扩展差异格式

-是的, - 短的
仅刷新补丁中已有的文件和指定的文件

-U, - 当前用户
在当前用户的补丁中添加/更新作者字段

-你,- 用户
在给定用户的补丁中添加/更新作者字段

-D, - 当前日期
使用当前日期在补丁中添加/更新日期字段

-d,- 日期
在给定日期的补丁中添加/更新日期字段

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-米,- 信息
使用文本作为提交消息

-l,--日志文件
从文件中读取提交消息

[+] 标记选项可以多次指定

重命名
重命名补丁:

hg qrename PATCH1 [PATCH2]

使用一个参数,将当前补丁重命名为 PATCH1。 有两个参数,重命名
PATCH1 到 PATCH2。

成功返回 0。

别名:qmv

恢复
恢复由修订保存的队列状态(已弃用):

hg qrestore [-d] [-u] REV

此命令已弃用,请使用 hg 变基 代替。

选项:

-d, - 删除
删除保存条目

-你, - 更新
更新队列工作目录

保存
保存当前队列状态(已弃用):

hg qsave [-m 文本] [-l 文件] [-c] [-n 名称] [-e] [-f]

此命令已弃用,请使用 hg 变基 代替。

选项:

-C, - 复制
复制补丁目录

-n,- 姓名
复制目录名称

-e, - 空的
清除队列状态文件

-F, - 力量
强制复制

-米,- 信息
使用文本作为提交消息

-l,--日志文件
从文件中读取提交消息

QSELECT
设置或打印受保护的补丁以推送:

hg qselect [选项]... [守卫]...

使用 hg 卫士 命令设置或打印补丁上的守卫,然后使用 qselect 告诉 mq
使用哪些警卫。 如果补丁没有防护或任何正防护,则将推送补丁
匹配当前选择的后卫,但如果有任何负后卫匹配,则不会被推送
现在的后卫。 例如:

qguard foo.patch -- -stable (负保护)
qguard bar.patch +stable(积极的后卫)
qselect 稳定的

这激活了“稳定”的守卫。 mq 将跳过 foo.patch (因为它有一个否定
匹配)但推送 bar.patch (因为它具有正匹配)。

不带参数,打印当前活动的守卫。 使用一个参数,设置活动
守护。

使用 -n/--none 停用守卫(不需要其他参数)。 当没有警卫
激活的,带有正防护的补丁被跳过,带有负防护的补丁被跳过
推。

qselect 可以更改应用补丁的保护。 它不会弹出受保护的补丁
默认。 使用 --pop 弹回最后应用的未受保护的补丁。 采用
--reapply(这意味着 --pop)之后推回当前补丁,但跳过
受保护的补丁。

使用 -s/--series 打印系列文件中所有守卫的列表(没有其他参数
需要)。 使用 -v 获取更多信息。

成功返回 0。

选项:

-n, - 没有任何
禁用所有守卫

-是的, - 系列
列出系列文件中的所有守卫

- 流行音乐 弹出到第一个受保护的应用补丁之前

--重新申请
弹出,然后重新应用补丁

q系列
打印整个系列文件:

hg q系列 [-ms]

成功返回 0。

选项:

-米, - 丢失的
打印补丁不串联

-是的, - 概括
打印补丁标题的第一行

qtop
打印当前补丁的名称:

汞 qtop [-s]

成功返回 0。

选项:

-是的, - 概括
打印补丁标题的第一行

已应用
打印尚未应用的补丁:

hg qunapplied [-1] [-s] [补丁]

成功返回 0。

选项:

- 1, - 第一的
只显示第一个补丁

-是的, - 概括
打印补丁标题的第一行

通知
用于发送电子邮件推送通知的钩子

此扩展实现挂钩以在发送变更集时发送电子邮件通知
或由本地存储库接收。

首先,启用扩展,如中所述 hg 帮助 扩展, 并注册你的钩子
想跑。 变更组 收到变更集时运行挂钩,而
即将离任 钩子用于发送到另一个存储库的变更集:

[钩子]
# 为每个传入的变更集发送一封电子邮件
传入.notify = python:hgext.notify.hook
# 所有传入变更集的一封电子邮件
更改组.notify = python:hgext.notify.hook

# 一封​​用于所有传出变更集的电子邮件
传出.notify = python:hgext.notify.hook

这注册了钩子。 要启用通知,订阅者必须分配到
存储库。 这 [用户订阅] 部分将多个存储库映射到给定的收件人。 这
[回购] 部分将多个收件人映射到单个存储库:

[用户订阅]
# key 是订阅者电子邮件,value 是 repo 模式的逗号分隔列表
用户@主机 = 模式

[回购]
# key 是 repo 模式,value 是逗号分隔的订阅者电子邮件列表
模式 = 用户@主机

A 模式 是一个 水珠 匹配存储库的绝对路径,可选地与
修改表达式。 revset 表达式(如果存在)通过散列与 glob 分隔。
示例:

[回购]
*/小部件#分支(发布)= [电子邮件保护]

这发送到 [电子邮件保护] 每当在 释放 分支触发一个
任何以结尾的存储库中的通知 小部件.

为了将它们置于直接用户管理之下, [用户订阅][回购] 部分
可以单独放置 高铁 文件并通过引用并入:

[通知]
配置 = /path/to/subscriptionsfile

通知将不会发送,直到 通知测试 值设置为 ; 见下文。

可以使用以下配置条目调整通知内容:

通知测试
If , 将消息打印到标准输出而不是发送它们。 默认值:真。

通知来源
以空格分隔的更改源列表。 通知仅在以下情况下激活
变更集的来源在此列表中。 来源可能是:

服务

通过 http 或 ssh 接收的变更集



通过收到的变更集 hg

解开

通过收到的变更集 hg 解开



通过发送或接收的变更集 hg



通过发送的变更集 hg 解开

默认值:服务。

通知条
从 url 路径中删除的前导斜杠数。 默认情况下,通知
参考存储库及其绝对路径。 通知条 让你转动它们
进入相对路径。 例如, 通知.strip=3 会改变 /长/路径/存储库
知识库. 默认值:0。

通知域
没有明确域的发件人或收件人的默认电子邮件域。

通知样式
格式化电子邮件时使用的样式文件。

通知模板
格式化电子邮件时使用的模板。

通知传入
作为传入钩子运行时使用的模板,覆盖 通知模板.

通知传出
作为传出钩子运行时使用的模板,覆盖 通知模板.

通知更改组
作为变更组挂钩运行时使用的模板,覆盖 通知模板.

通知.maxdiff
通知电子邮件中包含的最大差异行数。 设置为 0 禁用
差异,或 -1 以包括所有差异。 默认值:300。

通知.maxsubject
电子邮件主题行中的最大字符数。 默认值:67。

通知.diffstat
设置为 True 以在差异内容之前包含差异统计。 默认值:真。

通知合并
如果为 True,则发送合并变更集的通知。 默认值:真。

通知.mbox
如果设置,则将邮件附加到此 mbox 文件而不是发送。 默认值:无。

通知.fromauthor
如果设置,则使用变更组中第一个变更集的提交者作为“发件人”
通知邮件的字段。 如果未设置,则从推送存储库中获取用户。
默认值:假。

如果设置,以下条目也将用于自定义通知:

发件人
电邮 如果在生成的电子邮件内容中找不到地址,则使用该地址。

web.baseurl
进行引用时要与存储库路径组合的根存储库 URL。 看
通知条.

传呼机
使用外部寻呼机浏览命令输出

要设置应使用的寻呼机,请设置应用程序变量:

[寻呼机]
寻呼机 = 少 -FRX

如果没有设置分页器,分页器扩展使用环境变量 $PAGER。 如果两者都没有
pager.pager,也没有设置 $PAGER,没有使用 pager。

您可以通过将某些命令添加到 pager.ignore 列表来禁用寻呼机:

[寻呼机]
忽略 = 版本、帮助、更新

您还可以使用 pager.attend 仅为某些命令启用寻呼机。 下面是
默认要分页的命令列表:

[寻呼机]
参加 = 注释、cat、diff、export、glog、log、qdiff

将 pager.attend 设置为空值将导致所有命令被分页。

如果 pager.attend 存在,则 pager.ignore 将被忽略。

最后,您可以使用
参加- 选项。 此设置优先于现有的出席和忽略
选项和默认值:

[寻呼机]
参加猫=假

忽略全局命令,如 hg 版本 or hg 帮助,你必须在你的
用户配置文件。

要控制分页器是否完全用于单个命令,您可以使用
--寻呼机= :

- 根据需要使用:`auto`。
- 要求寻呼机:`yes` 或 `on`。
- 禁止寻呼机:`no` 或 `off`(任何无法识别的值
也将工作)。

补丁炸弹
命令将变更集作为(一系列)补丁电子邮件发送

该系列以“[PATCH 0 of N]”的介绍开始,该介绍描述了该系列
作为一个整体。

每封补丁邮件都有一个主题行“[PATCH M of N] ...”,使用
变更集描述作为主题文本。 消息包含两个或三个正文部分:

· 变更集描述。

· [可选] 在补丁上运行 diffstat 的结果。

· 补丁本身,由 hg 出口.

每条消息都使用 In-Reply-To 和 References 引用该系列中的第一条
标题,因此它们将在线程邮件和新闻阅读器以及邮件中显示为序列
档案。

要配置其他默认值,请在配置文件中添加如下部分:

[电子邮件]
来自 = 我的名字
到 = 收件人 1,收件人 2,...
cc = cc1, cc2, ...
密件抄送 = 密件抄送 1, 密件抄送 2, ...
回复=地址1,地址2,...

使用 [补丁炸弹] 如果您需要覆盖全局,则作为配置部分名称 [电子邮件]
地址设置。

然后您可以使用 hg 邮箱地址 命令将一系列变更集作为补丁炸弹邮寄。

您还可以将电子邮件部分中的方法选项配置为发送邮件
兼容的邮件程序或填写 [smtp] 部分,以便 patchbomb 扩展可以
直接从命令行自动发送补丁炸弹。 请参阅 [电子邮件] 和 [smtp]
在部分 高铁(5) 详情。

默认情况下, hg 邮箱地址 会提示输入 or CC 标头,如果您不提供一个通过
配置或命令行。 您可以通过配置将其覆盖为从不提示
一个空值:

[电子邮件]
抄送 =

您可以使用 补丁炸弹简介
配置选项。 配置总是被命令行标志覆盖,比如
--intro 和 --desc:

[补丁炸弹]
intro=auto # 如果超过 1 个补丁,则包含介绍消息(默认)
intro=never # 从不包含介绍信息
intro=always # 总是包含介绍信息

您可以通过设置将 patchbomb 设置为始终要求确认 补丁炸弹.确认 真实。

命令
邮箱地址
通过电子邮件发送变更集:

hg 电子邮件 [选项]... [目的地]...

默认情况下,差异以生成的格式发送 hg 出口, 每条消息一个。 这
系列以“[PATCH 0 of N]”的介绍开始,它描述了整个系列。

每封补丁邮件都有一个主题行“[PATCH M of N] ...”,使用
变更集描述作为主题文本。 消息包含两个或三个部分。
首先,变更集描述。

使用 -d/--diffstat 选项,如果安装了 diffstat 程序,运行结果
补丁上的 diffstat 被插入。

最后,补丁本身,由 hg 出口.

使用 -d/--diffstat 或 --confirm 选项,您将看到最终摘要
所有消息,并在发送消息之前要求确认。

默认情况下,补丁作为文本包含在电子邮件正文中,以便于查看。 使用
-a/--attach 选项将为补丁创建一个附件。 使用 -i/--inline 一个
将创建内联附件。 您可以在电子邮件正文中包含一个补丁作为文本
通过将 -a/--attach 或 -i/--inline 与
--body 选项。

使用 -o/--outgoing,将为目标中未找到的补丁生成电子邮件
存储库(或者只有那些是指定修订的祖先的那些,如果有的话
假如)

使用 -b/--bundle,变更集被选择为 --outgoing,但一封包含
将发送作为附件的二进制 Mercurial 包。 使用 补丁炸弹.bundletype
配置选项来控制捆绑类型 hg - 类型.

使用 -m/--mbox,而不是在寻呼机中预览每个 patchbomb 消息或发送
邮件,它将使用补丁电子邮件创建一个 UNIX 邮箱文件。 这个邮箱
可以使用任何支持 UNIX mbox 文件的邮件用户代理来预览文件。

使用 -n/--test,所有步骤都会运行,但不会发送邮件。 系统将提示您
电子邮件收件人地址、主题和描述补丁的介绍性消息
你的补丁炸弹。 然后当一切都完成后,会显示补丁炸弹消息。 如果寻呼机
环境变量已设置,您的寻呼机将为每个补丁炸弹消息启动一次,
这样您就可以验证一切正常。

如果电子邮件发送失败,您将在
.hg/最后的电子邮件.txt.

该命令的默认行为可以通过配置来定制。 (看 hg 帮助
补丁炸弹 了解详细信息)

例子:

hg email -r 3000 # 只发送补丁 3000
hg email -r 3000 -r 3001 # 发送补丁 3000 和 3001
hg email -r 3000:3005 # 发送补丁 3000 到 3005
hg email 3000 # 发送补丁 3000(已弃用)

hg email -o # 发送所有非默认补丁
hg email -o DEST # 发送不在 DEST 中的所有补丁
hg email -o -r 3000 # 默认发送所有 3000 的祖先
hg email -o -r 3000 DEST # 发送不在 DEST 中的 3000 的所有祖先

hg email -b # 发送所有非默认补丁包
hg email -b DEST # 发送不在 DEST 中的所有补丁包
hg email -b -r 3000 # 不是默认的 3000 的所有祖先的捆绑包
hg email -b -r 3000 DEST # 未在 DEST 中的 3000 的所有祖先的捆绑包

hg email -o -m mbox && # 生成一个 mbox 文件...
mutt -R -f mbox # ... 用 mutt 查看
hg email -o -m mbox && # 生成一个 mbox 文件 ...
formail -s sendmail \ # ... 并使用 formail 从 mbox 发送
-bm -t < mbox # ... 使用发送邮件

在使用此命令之前,您需要在 hgrc 中启用电子邮件。 见[电子邮件]
部分 高铁(5) 详情。

选项:

-G, --git
使用 git 扩展差异格式

- 清楚的
省略 hg 补丁头

-o, ——外向
发送在目标存储库中找不到的更改

-b, - 捆
将不在目标中的更改作为二进制包发送

--包名
捆绑附件文件的名称(默认:捆绑)

-r,--rev
要发送的修订

- 力量
即使远程存储库不相关也运行(使用 -b/--bundle)

- 根据
要指定的基本变更集而不是目标(使用 -b/--bundle)

- 介绍
发送单个补丁的介绍电子邮件

- 身体 将补丁作为内联消息文本发送(默认)

-一种, - 附
将补丁作为附件发送

-一世, - 排队
将补丁作为内联附件发送

--密件抄送
密件抄送收件人的电子邮件地址

-C,--抄送
副本收件人的电子邮件地址

- 确认
发送前要求确认

-d, --差异统计
将 diffstat 输出添加到消息

- 日期
使用给定日期作为发送日期

--描述
使用给定的文件作为系列描述

-F,- 从
发件人的电子邮件地址

-n, - 测试
打印将要发送的消息

-米,--mbox
将消息写入 mbox 文件而不是发送它们

- 回复
电子邮件地址应发送至

-是的,- 主题
第一条消息的主题(介绍或单个补丁)

——回复
要回复的消息标识符

- 旗帜
在主题前缀中添加的标志

-t,- 到
收件人的电子邮件地址

-e,--ssh
指定要使用的 ssh 命令

--远程命令
指定要在远程端运行的 hg 命令

--不安全
不验证服务器证书(忽略 web.cacerts 配置)

[+] 标记选项可以多次指定

清除
命令从工作目录中删除未跟踪的文件

命令
清除
删除 Mercurial 未跟踪的文件:

hg purge [选项] ... [目录] ...

删除 Mercurial 不知道的文件。 这对于测试本地和未提交的更改很有用
在其他干净的源代码树中。

这意味着清除将默认删除以下内容:

· 未知文件:标有“?”的文件经过 hg 状态

· 空目录:实际上 Mercurial 会忽略目录,除非它们包含以下文件
源头控制管理

但它会保持原样:

· 修改和未修改的跟踪文件

· 忽略的文件(除非指定了 --all)

· 新文件添加到存储库(与 hg )

--files 和 --dirs 选项可用于指示 purge 仅删除文件,仅
目录,或两者兼而有之。 如果两个选项都没有给出,则两者都将被删除。

如果在命令行中给出了目录,则只有这些目录中的文件
考虑过的。

清除时要小心,因为您可能会不可逆转地删除一些忘记添加的文件
存储库。 如果您只想打印该程序将执行的文件列表
删除,使用 --print 选项。

选项:

-一种, --错误中止
如果发生错误则中止

- 全部 也清除忽略的文件

--目录 清除空目录

--文件
清除文件

-p, - 打印
打印文件名而不是删除它们

- 0, --打印0
以 NUL 结束文件名,用于 xargs(隐含 -p/--print)

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

[+] 标记选项可以多次指定

别名:干净

变基
命令将修订集移动到不同的祖先

此扩展允许您在现有 Mercurial 存储库中重新设置变更集。

欲了解更多信息:https://mercurial-scm.org/wiki/RebaseExtension

命令
变基
将变更集(和后代)移动到不同的分支:

hg rebase [-s REV | -b 版本] [-d 版本] [选项]

Rebase 使用重复合并从历史的一部分移植变更集(来源)
到另一个(目的地)。 这对于线性化很有用 本地 相对变化
到主开发树。

已发布的提交不能重新设置基础(请参阅 hg 帮助 阶段)。 要复制提交,请参阅 hg 帮助
接枝.

如果您不指定目标变更集 (-d/--目标), rebase 使用当前分支
小费作为目的地。 (目标变更集不是通过变基修改的,而是新的
变更集作为其后代添加。)

以下是选择变更集的方法:

1. 使用显式选择它们 --rev.

2。 使用 - 来源 选择一个根变更集并包括其所有后代。

3。 使用 - 根据 选择变更集; rebase 会找到祖先和他们的后代
它们也不是目的地的祖先。

4. 如果您不指定任何 --rev, 资源- 根据, rebase 将使用 - 根据 . as
以上。

除非您使用,否则 Rebase 将破坏原始变更集 - 保持. 它也会让你的
书签(即使你这样做了)。

如果某些变更集没有贡献更改(例如从
目标分支)。

不比 合并,如果你在一个命名分支的分支尖端,rebase 将不会做任何事情
两个头。 您将需要明确指定源和/或目标。

如果 rebase 被中断以手动解决冲突,则可以继续
--continue/-c 或使用 --abort/-a 中止。

例子:

· 将“本地更改”(当前提交回分支点)移动到当前分支提示
拉后:

汞变基

· 将单个变更集移动到稳定分支:

hg rebase -r 5f493448 -d 稳定

· 将提交及其所有后代拼接到历史的另一部分:

汞变基 --source c0c3 --dest 4cf9

· 将书签标记的分支上的所有内容重新定位到默认分支:

hg rebase --base myfeature --dest 默认

· 将一系列更改合并到一个提交中:

hg rebase --collapse -r 1520:1525 -d 。

· 移动命名分支,同时保留其名称:

hg rebase -r "branch(featureX)" -d 1.3 --keepbranches

成功时返回 0,如果没有要变基或存在未解决的冲突,则返回 1。

选项:

-是的,- 来源
变基指定的变更集和后代

-b,- 根据
从指定变更集的分支点重新调整所有内容

-r,--rev
重新调整这些修订

-d,--目标
重新定位到指定的变更集

- 坍塌
折叠重新设置的变更集

-米,- 信息
使用文本作为折叠提交消息

-e, - 编辑
在提交消息上调用编辑器

-l,--日志文件
从文件中读取折叠提交消息

-k, - 保持
保留原始变更集

--保留分支
保留原始分支名称

-D, - 分离
(已弃用)

-一世, - 交互的
(已弃用)

-t,- 工具
指定合并工具

-C, - 继续
继续一个中断的变基

-一种, --中止
中止中断的变基

- 风格
使用模板地图文件显示(已弃用)

-T,- 模板
用模板展示

[+] 标记选项可以多次指定

记录
命令以交互方式选择提交/qrefresh 的更改

命令
记录
交互式录制新补丁:

hg qrecord [选项]...补丁[文件]...

我们 hg 帮助 & hg 帮助 记录 了解更多信息和用法。

记录
以交互方式选择要提交的更改:

hg 记录 [选项]... [文件]...

如果省略文件列表,则报告的所有更改 hg 状态 将成为候选人
记录。

我们 hg 帮助 日期 获取对 -d/--date 有效的格式列表。

系统会提示您是否记录对每个修改文件的更改,以及是否记录文件
进行多次更改,以供每次更改使用。 对于每个查询,以下响应是
可以:

y - 记录此更改
n - 跳过此更改
e - 手动编辑此更改

s - 跳过对该文件的剩余更改
f - 记录对该文件的剩余更改

d - 完成,跳过剩余的更改和文件
a - 记录所有剩余文件的所有更改
q - 退出,不记录任何变化

? - 显示帮助

提交合并时,此命令不可用。

选项:

-一种, --添加删除
在提交之前将新的/丢失的文件标记为添加/删除

--关闭分支
将分支头标记为关闭

- 修正
修改工作目录的父目录

-是的, - 秘密
使用秘密阶段进行提交

-e, - 编辑
在提交消息上调用编辑器

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

-米,- 信息
使用文本作为提交消息

-l,--日志文件
从文件中读取提交消息

-d,- 日期
将指定日期记录为提交日期

-你,- 用户
将指定用户记录为提交者

-S, --子仓库
递归到子存储库

-w, --忽略所有空间
比较行时忽略空格

-b, --忽略空间变化
忽略空白量的变化

-B, --忽略空白行
忽略所有行都是空白的更改

[+] 标记选项可以多次指定

重新链接
在存储库克隆之间重新创建硬链接

命令
重新链接
重新创建两个存储库之间的硬链接:

hg 重新链接 [起源]

当存储库在本地克隆时,它们的数据文件将被硬链接,以便它们
仅使用单个存储库的空间。

不幸的是,随后拉入任一存储库都会破坏任何文件的硬链接
被新的变更集触及,即使两个存储库最终都提取了相同的变更。

同样,将 --rev 传递给“hg clone”将无法使用任何硬链接,回退到
源存储库的完整副本。

此命令可让您重新创建这些硬链接并回收浪费的空间。

此存储库将重新链接以与 ORIGIN 共享空间,ORIGIN 必须位于同一
本地磁盘。 如果省略 ORIGIN,则在 [paths] 中查找“default-relink”,然后查找“default”。

在命令运行时,不要尝试对此存储库进行任何读取操作。 (两个都
存储库将被锁定以防止写入。)

方案
使用存储库群的快捷方式扩展方案

此扩展允许您为具有大量存储库的父 URL 指定快捷方式
像一个计划一样行动,例如:

[方案]
py= http://code.python.org/hg/

之后,您可以像这样使用它:

hg 克隆 py://trunk/

此外,还支持一些更复杂的模式,例如 Google 使用的模式
代码:

[方案]
gcode = http://{1}.googlecode.com/hg/

语法取自 Mercurial 模板,你有无限数量的变量,
从...开始 1 {} 并继续 2 {}, 3 {} 等等。 这个变量将收到
提供的部分 URL,由 /. 任何未指定为 {部分} 将被附加
到一个 URL。

为方便起见,扩展默认添加了这些方案:

[方案]
py= http://hg.python.org/
bb = https://bitbucket.org/
bb+ssh = ssh://[电子邮件保护]/
gcode = https://{1}.googlecode.com/hg/
窑 = https://{1}.kilnhg.com/Repo/

您可以通过定义具有相同名称的新方案来覆盖预定义方案。

分享
在几个工作目录之间共享一个共同的历史

自动表 汇集 存储 克隆
当此扩展程序处于活动状态时, hg 克隆 可以配置为自动共享/池
跨多个克隆的存储。 这种模式有效地转换 hg 克隆hg 克隆 + hg
分享. 使用这种模式的好处是可以自动管理存储路径和
相关存储库的智能池化。

下列 份额。 配置选项影响此功能:

共享池

将存储共享存储库数据的文件系统路径。 定义时, hg 克隆
将自动使用共享存储库存储,而不是在内部创建存储
每个克隆。

共享池命名

目录名称如何在 共享池 被构造。

“身份”表示名称源自存储库中的第一个变更集。 在
这种模式下,不同的遥控器共享存储,如果它们的根/初始变更集是
完全相同的。 在这种模式下,本地共享存储库是所有
遇到远程仓库。

“remote”表示名称源自源存储库的路径或 URL。 在
此模式下,仅当请求的路径或 URL 在 hg 克隆
命令与之前克隆的存储库完全匹配。

默认命名模式是“身份”。

命令
分享
创建一个新的共享存储库:

hg 共享 [-U] [-B] 源 [DEST]

初始化一个新的存储库和共享其历史的工作目录(以及可选的
书签)与另一个存储库。

注意使用破坏/修改历史的回滚或扩展(mq、rebase 等)可以
与共享克隆造成相当大的混乱。 特别是,如果两个共享
克隆都更新到相同的变更集,其中一个破坏了
带有回滚的变更集,另一个克隆将突然停止工作:所有操作
将因“中止:工作目录有未知的父级”而失败。 唯一已知的
解决方法是在损坏的克隆上使用 debugsetparents 将其重置为变更集
那仍然存在。

选项:

-U, --无更新
不要创建工作目录

-B, - 书签
也分享书签

取消分享
将共享存储库转换为普通存储库:

hg取消分享

将存储数据复制到 repo 并删除 sharedpath 数据。

搁置
保存和恢复对工作目录的更改

“hg shelve”命令保存对工作目录所做的更改并恢复那些
更改,将工作目录重置为干净状态。

稍后,“hg unshelve”命令恢复“hg shelve”保存的更改。 改变可以
即使在更新到不同的父级后也会恢复,在这种情况下 Mercurial 的合并
如有必要,机器将解决任何冲突。

您一次可以有多个搁置的变更未完成; 每个搁置的更改都有一个
独特的名字。 有关详细信息,请参阅“hg shelve”的帮助。

命令
搁置
保存并搁置工作目录中的更改:

hg 搁置 [选项]... [文件]...

搁置获取“hg status”报告为不干净的文件,将修改保存到
捆绑(搁置的更改),并还原文件,使其处于工作状态
目录变得干净。

要将这些更改恢复到工作目录,请使用“hg unshelve”; 这会起作用
即使您切换到不同的提交。

当没有指定文件时,“hg shelve”保存所有不干净的文件。 如果特定文件或
目录被命名,只有对这些文件的更改被搁置。

每个搁置的更改都有一个名称,以便以后更容易找到。 搁置的名称
将默认值更改为基于活动书签,或者如果没有活动书签,
当前命名的分支。 要指定不同的名称,请使用 - 姓名.

要查看现有搁置更改的列表,请使用 - 列表 选项。 对于每个搁置的更改,
这将打印它的名称、年龄和描述; 利用 - 修补 or --统计 以获得更多细节。

要删除特定搁置的更改,请使用 - 删除. 要删除所有搁置的更改,请使用
- 清理.

选项:

-一种, --添加删除
在搁置之前将新/丢失的文件标记为添加/删除

-你, - 未知
将未知文件存储在搁置中

- 清理
删除所有搁置的更改

- 日期
搁置指定的提交日期

-d, - 删除
删除命名搁置的更改

-e, - 编辑
在提交消息上调用编辑器

-l, - 列表
列出当前货架

-米,- 信息
使用文本作为搁置消息

-n,- 姓名
为搁置的提交使用给定的名称

-p, - 修补
显示补丁

-一世, - 交互的
交互模式,仅在创建搁架时有效

--统计 输出 diffstat 样式的更改摘要

-一世,- 包括
包括与给定模式匹配的名称

-X,- 排除
排除匹配给定模式的名称

[+] 标记选项可以多次指定

上架
将搁置的更改恢复到工作目录:

hg unshelf [搁置]

此命令接受要恢复的搁置更改的可选名称。 如果没有给出,
使用最近搁置的更改。

如果成功应用搁置的更改,则包含搁置更改的捆绑包
移动到备份位置 (.hg/shelve-backup)。

由于您可以在任意提交之上恢复搁置的更改,因此有可能
取消搁置将导致您的更改与您的提交之间发生冲突
上架。 如果发生这种情况,您必须解决冲突,然后使用 - 继续
完成取消搁置操作。 (在您成功之前不会移动捆绑包
完成搁置。)

(或者,您可以使用 --中止 放弃导致冲突的搁置。 这个
还原未搁置的更改,并将捆绑包留在原处。)

成功取消搁置后,搁置的更改将存储在备份目录中。 仅有的
保留最近的 N 个备份。 N 默认为 10,但可以使用
搁置.maxbackups 配置选项。

以秒为单位的时间戳用于决定备份的顺序。 多于 最大备份 备份是
保留,如果相同的时间戳阻止确定它们的确切顺序,以确保安全。

选项:

-一种, --中止
中止不完整的取消搁置操作

-C, - 继续
继续一个不完整的取消搁置操作

-k, - 保持
取消搁置后保持搁置

-t,- 工具
指定合并工具

- 日期
为临时提交设置日期(已弃用)

剥离
从历史中剥离变更集及其后代

此扩展允许您从
存储库。 有关详细信息,请参阅命令帮助。

命令
剥离
从存储库中剥离变更集及其所有后代:

hg 条 [-k] [-f] [-B 书签] [-r] REV...

strip 命令删除指定的变更集及其所有后代。 如果
工作目录有未提交的更改,操作将中止,除非 --force
提供标志,在这种情况下更改将被丢弃。

如果工作目录的父级被剥离,那么工作目录将
自动更新为剥离父级的最新可用祖先
操作完成后。

任何剥离的变更集都存储在 .hg/带备份 作为一个捆绑包(见 hg 帮助
hg 帮助 解开)。 它们可以通过运行来恢复 hg 解开 .hg/剥离备份/BUNDLE,
其中 BUNDLE 是条带创建的捆绑文件。 请注意,本地修订号
恢复后一般会有所不同。

操作完成后,使用 --no-backup 选项丢弃备份包。

Strip 不是历史重写操作,可用于公共变更集
阶段。 但是,如果剥离的变更集已被推送到远程存储库,您将
可能会再次拉动它们。

成功返回 0。

选项:

-r,--rev
剥离指定的修订版(可选,可以在没有此选项的情况下指定修订版)

-F, - 力量
强制删除变更集,丢弃未提交的变更(无备份)

--无备份
没有备份

--无备份
没有备份(已弃用)

-n 忽略(已弃用)

-k, - 保持
剥离期间不要修改工作目录

-B,- 书签
删除只能从给定书签中访问的转速

[+] 标记选项可以多次指定

移植
从另一个分支移植变更集的命令

此扩展允许您将更改移植到另一个父版本,可能在
另一个存储库。 移植是使用“差异”补丁完成的。

移植的补丁记录在 .hg/transplant/transplants 中,作为来自变更集的地图
散列到它在源存储库中的散列。

命令
移植
从另一个分支移植变更集:

hg 移植 [-s REPO] [-b BRANCH [-a]] [-p REV] [-m REV] [REV]...

选定的变更集将与日志一起应用到当前工作目录的顶部
的原始变更集。 变更集被复制,因此将在
不同身份的历史。

如果所有内容都在同一个存储库中,请考虑使用 graft 命令 - 它将使用
合并,通常会给出更好的结果。 如果变更集,请使用 rebase 扩展
未发布,您想移动它们而不是复制它们。

如果指定了 --log,日志消息将附加以下形式的注释:

(移植自 CHANGESETHASH)

您可以使用 --filter 选项重写更改日志消息。 它的论点将是
使用当前更改日志消息作为 $1 和补丁作为 $2 调用。

--source/-s 指定另一个用于选择变更集的存储库,就像它一样
暂时被拉了。 如果指定了 --branch/-b,这些修订将用作
在决定要移植哪些变更集时,就好像只有这些修订版具有
被拉。 如果指定了--all/-a,则所有修订版都使用指定的heads
--branch 将被移植。

示例:

· 将所有更改移植到当前版本之上的 REV:

hg 移植 --branch REV --all

您可以选择将选定的移植变更集标记为合并变更集。 你不会
被提示移植一个合并移植的任何祖先,并且可以合并
它们的后代通常而不是移植它们。

合并变更集可以通过指定适当的父变更集直接移植
调用 hg 移植 --父母.

如果没有提供合并或修订, hg 移植 将启动一个交互式变更集
浏览器。

如果变更集应用程序失败,您可以手动修复合并,然后从您的位置恢复
打电话离开 hg 移植 --继续/-c.

选项:

-是的,- 来源
从 REPO 移植变更集

-b,- 分支
使用这个源变更集作为头

-一种, - 全部
将所有变更集拉到 --branch 修订

-p,- 修剪
跳过 REV

-米,- 合并
在 REV 合并

--父母
移植合并时选择的父级

-e, - 编辑
在提交消息上调用编辑器

- 日志 将移植信息附加到日志消息

-C, - 继续
修复冲突后继续上次移植会话

- 筛选
通过命令过滤变更集

[+] 标记选项可以多次指定

win32mbcs
允许使用编码有问题的 MBCS 路径

一些 MBCS 编码对一些路径操作(即分割路径、大小写
转换等)及其编码字节。 我们称这样的编码(即 shift_jis 和
big5) 作为“有问题的编码”。 此扩展程序可用于解决这些问题
通过包装一些函数以在路径操作之前转换为 Unicode 字符串来进行编码。

此扩展适用于:

· 使用 shift_jis 编码的日本 Windows 用户。

· 中文Windows用户使用big5编码。

· 使用不区分大小写的有问题编码之一的存储库的所有用户
文件系统。

以下情况不需要此扩展:

· 任何在路径中仅使用 ASCII 字符的用户。

· 任何不使用任何有问题的编码的用户。

请注意,使用此扩展有一些限制:

· 您应该在一个存储库中使用单一编码。

· 如果存储库路径以 0x5c 结尾,则无法读取 .hg/hgrc。

· win32mbcs 不兼容 fixutf8 扩展。

默认情况下,win32mbcs 使用 Mercurial 决定的 encoding.encoding。 您可以指定
通过配置选项编码:

[win32mbcs]
编码 = sjis

这对于想要使用 UTF-8 日志消息提交的用户很有用。

win32文本
执行自动换行符转换(已弃用)

弃用:win32text 扩展要求每个用户配置扩展
由于克隆时不会复制配置,因此对每个克隆一次又一次。

因此,我们制作了 EOL 作为备选。 这 EOL 使用版本控制
配置文件,因此每个克隆都将使用正确的设置
开始。

要执行自动换行符转换,请使用:

[扩展]
win32文本 =
[编码]
** = 聪明编码:
# 或 ** = macencode:

[解码]
** = 聪明解码:
# 或 ** = macdecode:

如果不进行转换,请确保您不会意外提交 CRLF/CR:

[钩子]
pretxncommit.crlf = python:hgext.win32text.forbidcrlf
# 或 pretxncommit.cr = python:hgext.win32text.forbidcr

要在服务器上执行相同的检查以防止 CRLF/CR 被推送或拉取:

[钩子]
pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf
# 或 pretxnchangegroup.cr = python:hgext.win32text.forbidcr

零配置
发现和通告本地网络上的存储库

zeroconf 扩展将发布广告 hg 服务 DNS-SD 上的实例,以便它们可以
发现使用 hg 路径 在不知道服务器地址的情况下执行命令。

允许其他人使用 run 发现您的存储库 hg 服务 在您的存储库中:

$ cd 测试
$汞服务

您可以通过运行发现启用 Zeroconf 的存储库 hg 路径:

$ hg 路径
zc测试= http://example.com:8000/测试

使用 onworks.net 服务在线使用 hg


免费服务器和工作站

下载 Windows 和 Linux 应用程序

  • 1
    AstrOrz播放器
    AstrOrz播放器
    AstrOrz Player 是一款免费的媒体播放器
    软件,部分基于 WMP 和 VLC。 这
    播放器采用极简风格,带有
    十多个主题色,还可以
    B ...
    下载 AstrOrzPlayer
  • 2
    电影启动器
    电影启动器
    Kodi Movistar+ TV 是 XBMC/ 的 ADDON
    Kodi 许可分配器
    IPTV服务解码器
    Movistar Integrado en uno de los
    媒体中心马...
    下载 movistartv
  • 3
    代码::块
    代码::块
    Code::Blocks 是一个免费的、开源的、
    跨平台 C、C++ 和 Fortran IDE
    专为满足最苛刻的需求而打造
    它的用户。 它的设计非常
    扩展...
    下载代码::Blocks
  • 4
    之中
    之中
    中间或高级 Minecraft 界面
    和数据/结构跟踪是一种工具
    显示 Minecraft 的概览
    世界,而无需实际创造它。 它
    能够 ...
    下载烟雨
  • 5
    系统2
    系统2
    MSYS2 是一组工具和
    图书馆为您提供
    易于使用的建筑环境,
    安装和运行本机 Windows
    软件。 它连...
    下载 MSYS2
  • 6
    libjpeg-turbo
    libjpeg-turbo
    libjpeg-turbo 是一个 JPEG 图像编解码器
    使用 SIMD 指令(MMX、SSE2、
    NEON、AltiVec)加速基线
    JPEG 压缩和解压
    x86、x8...
    下载 libjpeg-turbo
  • 更多 ”

Linux 命令

  • 1
    跟踪器
    跟踪器
    abi-tracker - 可视化 ABI 变化
    C/C++ 软件库的时间表。
    描述:名称:ABI 跟踪器
    (abi-tracker) 可视化 ABI 变化
    C/C+ 的时间表...
    运行 abi-tracker
  • 2
    比查
    比查
    abicheck - 检查应用程序二进制文件
    用于调用私有或不断演变的符号
    在库中和静态链接
    一些系统库。 ...
    运行abicheck
  • 3
    快递公司
    快递公司
    couriermlm - Courier 邮件列表
    经理 ...
    运行快递
  • 4
    快递员
    快递员
    couriertcpd - Courier 邮件服务器
    TCP 服务器守护进程...
    运行 couriercpd
  • 5
    gbk乳胶
    gbk乳胶
    bg5latex - 直接在 Big5 上使用 LaTeX
    encodedtex 文件 bg5pdflatex - 使用
    pdfLaTeX 直接在 Big5 encodedtex 上
    文件 bg5+latex - 直接在 a 上使用 LaTeX
    大5+...
    运行 gbklatex
  • 6
    gbkpdf乳胶
    gbkpdf乳胶
    bg5latex - 直接在 Big5 上使用 LaTeX
    encodedtex 文件 bg5pdflatex - 使用
    pdfLaTeX 直接在 Big5 encodedtex 上
    文件 bg5+latex - 直接在 a 上使用 LaTeX
    大5+...
    运行 gbkpdflatex
  • 更多 ”

Ad