【问题标题】:.hgignore doesn't seem to be working.hgignore 似乎没有工作
【发布时间】:2011-11-23 17:28:15
【问题描述】:

我在项目的根目录中有一个.hgignore 文件,但它没有下蹲。当我执行hg add 时,我的项目目录中的每个文件都会被添加和跟踪。无论我使用 tortoisehg 还是命令行,我都会得到相同的结果。命令行是我的偏好。这是怎么回事?

我的.hgignore(取自另一个关于 SO 的问题):

# use glob syntax
syntax: glob

*.obj
*.pdb
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
*.lib
*.sbr
*.scc
[Bb]in
[Dd]ebug*/
obj/
[Rr]elease*/
_ReSharper*/
[Tt]humbs.db
[Tt]est[Rr]esult*
[Bb]uild[Ll]og.*
*.[Pp]ublish.xml
*.resharper

【问题讨论】:

  • 您的项目中的.hgignore 文件在哪里?不是在.hg目录里面吧?
  • @brandizzi 根据我的问题的第一行,它位于项目根目录中。它就在我的 .hg 文件夹旁边。
  • 您的.hgignore 内容对我有用。不管是什么问题,我认为不是你的.hgignore。您可能需要深入了解 repo 的 hgrc 和您的全局配置。
  • 谢谢大家。我刚刚修复了它,显然这是文件的某种问题。将发布更多信息作为答案。
  • @Pete 你是对的,我的问题是多余的。很抱歉造成混乱,只是我在开始使用 Mercurial 时犯了这个错误:)

标签: command-line mercurial tortoisehg hgignore


【解决方案1】:

显然这是文件编码的一些问题。我在 Notepad++ 中编辑文件(尝试过 ANSI 和 UTF-8 编码),编辑时文件看起来很好。我已经放弃并决定使用命令notepad .hgignore 重新开始。然后我粘贴了文件中给我带来麻烦的内容,所有内容都在一行中,没有中断。我修复了中断,保存了文件,它立即起作用了。

我仍然不确定为什么该文件在 Notepad++ 中看起来不错,但实际上是在输出垃圾。

【讨论】:

  • 它可能已经在文件的前面放置了一个 BOM(字节顺序标记),这对于 UTF-16 有时是可以的,但对于 UTF-8 就不行了,尽管 Windows 上的编辑器喜欢这样做有时还是这样。
【解决方案2】:

glob 匹配语法将路径考虑在内。您可以切换到 syntax: relglob 以获得相对路径名,或在您的模式前加上 **/

【讨论】:

  • hg st -i 仍然没有返回任何内容。此外,我目前拥有的唯一跟踪文件是我的 .hgignore。
  • 尝试hg --config "ui.ignore=.hgignore" stat -i 以确保 hgignore 位置不会被其他地方覆盖。
【解决方案3】:

您可能需要告诉 mercurial 全局忽略文件的位置。我必须将此行添加到我的.hgrc[ui] 部分下才能正常工作。

ignore = ~/.hgignore

【讨论】:

    猜你喜欢
    • 2013-11-25
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 1970-01-01
    相关资源
    最近更新 更多