首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mercurial .hgignore受挫

Mercurial .hgignore受挫
EN

Stack Overflow用户
提问于 2012-07-03 09:03:11
回答 3查看 3.2K关注 0票数 3

我有一个RE检查器,它说这应该可以工作。我做错了什么?!?

下面是我试图忽略的示例:

代码语言:javascript
复制
apps/cms/templates/cms/test_bup_DEPRECATED/widgets/page_link.html

和我的.hgignore文件:

代码语言:javascript
复制
syntax: regexp
^static
.*_DEPRECATED.*

我尝试了各种方法,但都没有成功:

另一次尝试失败:

代码语言:javascript
复制
syntax: glob
_DEPRECATED/*

更新:我将.hgignore文件编辑为:

代码语言:javascript
复制
syntax: glob
**_DEPRECATED/**

但hg仍在这样做:

代码语言:javascript
复制
$ hg st | grep DEPR
A apps/cms/templates/cms/test_DEPRECATED/base.html

下面的结果是一样的:

代码语言:javascript
复制
syntax: glob
_DEPRECATED
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-03 09:56:48

首先,.hgignore不会忽略Mercurial已经跟踪到的文件。您的示例表明该文件已被跟踪:

代码语言:javascript
复制
$ hg st | grep DEPR
A apps/cms/templates/cms/test_DEPRECATED/base.html

文件已添加,但未提交。使用hg forget忘记该文件,然后忽略模式将生效。

.hgignore模式匹配路径的任何部分,因此这就是您所需要的:

代码语言:javascript
复制
syntax: regexp
_DEPRECATED/

注意:您可能需要目录的尾部斜杠,或者它也将匹配以_DEPRECATED结尾的文件,否则删除它。

要解决忽略模式,TortoiseHg中的ignore GUI (thg ignore)是非常有用的。它显示所有未跟踪和未忽略的文件,并且可以输入模式,直到正确的文件被忽略。

票数 8
EN

Stack Overflow用户

发布于 2012-07-03 09:20:03

正确答案:

代码语言:javascript
复制
syntax: glob
**_DEPRECATED/**

示例:

代码语言:javascript
复制
$ cat .hgignore 
syntax: glob
**_DEPRECATED/**
$ find . | fgrep -v /.hg/
.
./.hgignore
./apps
./apps/cms
./apps/cms/templates
./apps/cms/templates/cms
./apps/cms/templates/cms/file
./apps/cms/templates/cms/test_bup_DEPRECATED
./apps/cms/templates/cms/test_bup_DEPRECATED/widgets
./apps/cms/templates/cms/test_bup_DEPRECATED/widgets/page_link.html
$ hg st
? apps/cms/templates/cms/file
票数 1
EN

Stack Overflow用户

发布于 2012-07-03 09:20:01

我认为是您的regexp中包含的*字符。我认为因为*表示0或更多,所以regexp将在字符串的位置0处匹配,忽略每个文件,这被hgignore解释为错误,使您的表达式无效。

我将只使用"_DEPRECATED“(不带引号),因为它将匹配字符串的第31个字符。我选择了这个子集,因为它看起来像是您试图忽略其中包含字符串_DEPRECATED的任何文件。如果这不是您想要的匹配,请让我知道,我将尝试提出一个您可以使用的不同正则表达式。

另外,您是否正在尝试忽略任何以字符"static“开头的文件,因为这就是另一行看起来正在做的事情。

此外,您还可以使用一种比正则表达式更直接的glob语法。您可以使用这样的语法轻松地忽略整个目录。我不知道你是如何布置你的项目的,但是如果忽略整个目录就能实现你的目标,这是一个简单的方法。

更多文档在这里:http://www.selenic.com/mercurial/hgignore.5.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11303202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档