Yang Yubo's Life @ Refactoring

(翻译) Mercurial .hgignore 格式说明

written on Monday, September 6, 2010

原文: hgignore - syntax for Mercurial ignore files

作者: Vadim Gelfer <vadim.gelfer@gmail.com>
组织: Mercurial
手册单元: 5
手册小组: Mercurial Manual
翻译: yospaly

摘要

Mercurial 系统在版本库的工作目录下维护了一个名为 .hgignore 的文件, 它决定了 hg 在搜索未入库托管文件时的行为.

描述

Mercurial 版本库工作目录下总会有一些文件是不应该被托管的. 这些文件包括编辑器产生的备份文件, 以及编译器生成的构建文件. 这些文件可以通过罗列在 .hgignore 文件中以便 hg 忽略掉它们. .hgignore 必须手工创建. 通常我们应该把它也放到版本库托管, 以便这些设置能够随着 pushpull 扩散到其它版本库.

一个未托管的文件, 如果其相对路径 (相对于版本库根目录) 或相对路径的前缀路径, 匹配上 .hgignore 文件中的任一模式规则, 则将被 hg 忽略.

例如, 假设我们的版本库工作目录下有一个未被托管的文件 file.c, 其相对路径是 a/b/file.c. 如果 .hgignore 有任一模式规则符合 a/b/file.c, a/b 或者 a, Mercurial 都将无视 file.c.

另外, Mercurial 还支持用户或全局级别的配置文件设定文件忽略集合. 关于如何配置这些文件的详细指导, 请参考 hgrc(5) 手册, 跳转到 "ui" 章节 "ignore" 条目.

要控制 Mercurial 处理托管文件的行为, 请参考 hg(1) 手册. 查找 -I-X 选项.

语法

忽略文件 (即 .ignore) 是一个由模式规则列表构成的纯文本文件, 每个模式规则占据一行. 空行将被无视. "#" 之后的字符串被当作注释, "\" 字符为转义字符.

Mercurial 支持多种模式规则语法. 缺省使用的语法是 Python/Perl 风格的正则表达式.

要改变缺省使用的语法, 须按以下格式:

syntax: NAME

NAME 的可选项如下:

regexp

  • 正则表达式, Python/Perl 风格.

glob

  • Shell 风格的通配符.

选定的语法会影响其后所有的模式规则, 直到再次改变语法为止.

通配符和正则表达式模式都不是根寻方式. *.c 格式的通配符将匹配任意目录下以 .c 为后缀的文件, 等效的正则表达式模式则是 \.c$. 要让正则表达式模式采用根寻方式, 表达式须以 ^ 字符开头.

范例

以下是 .hgignore 样板文件:

# 使用通配符语法.
syntax: glob

*.elc
*.pyc
*~

# 切换到正则表达式.
syntax: regexp
^\.pc/

作者

Vadim Gelfer <vadim.gelfer@gmail.com>

Mercurial was written by Matt Mackall <mpm@selenic.com>.

参考

hg(1), hgrc(5)

版权

This manual page is copyright 2006 Vadim Gelfer. Mercurial is copyright 2005-2010 Matt Mackall. Free use of this software is granted under the terms of the GNU General Public License version 2 or any later version.

This entry was tagged DVCS, Mercurial(Hg) and 翻译

blog comments powered by Disqus