gpt4 book ai didi

mercurial - 如何确定哪个规则导致文件在Mercurial中被忽略?

转载 作者:行者123 更新时间:2023-12-03 15:38:42 24 4
gpt4 key购买 nike

Mercurial目前正在忽略一个文件,我认为不应忽略该文件。 .hgignore文件很大,经过粗略的阅读后,不清楚哪个规则是罪魁祸首。

有没有办法让Mercurial告诉我.hgignore中的哪些规则(如果有)与文件匹配?

最佳答案

您不能立即执行此操作,但是可以为此编写Mercurial扩展名。

我编写了扩展名hg-isignored,它可以向您显示.hgignore中的哪些规则与指定的文件夹或文件匹配。

安装

在某处(即~/.hgrc.d/hg-isignored文件夹中)克隆扩展源:

hg clone https://hg@bitbucket.org/rpeshkov/hg-isignored ~/.hgrc.d/hg-isignored

.hgrc文件的扩展名部分中添加扩展名:
[extensions]
isignored=~/.hgrc.d/hg-isignored/hg-isignored.py

现在,Mercurial将能够使用由扩展实现的 isignored命令。

用法

在Mercurial存储库中时,运行命令 hg isignored PATH,而不是PATH插入要检查的文件夹或文件 hg isignored readme.txt。扩展程序将告诉您指定的PATH是否被忽略,并显示您使用的规则。

测试

在里面
[~/hgtest]% hg init

否.hgignore
[~/hgtest]% touch readme.txt
[~/hgtest]% hg st
? readme.txt
[~/hgtest]% hg isignored readme.txt
abort: .hgignore file not found

添加了.hgignore
[~/hgtest]% echo "syntax: glob" > .hgignore
[~/hgtest]% echo "readme.txt" >> .hgignore
[~/hgtest]% hg st
? .hgignore
[~/hgtest]% hg isignored readme.txt
Path 'readme.txt' is ignored by:
relglob:readme.txt

不被忽略的文件
[~/hgtest]% touch readme2.txt
[~/hgtest]% hg isignored readme2.txt
Path 'readme2.txt' is not ignored

忽略文件夹
[~/hgtest]% mkdir build
[~/hgtest]% touch build/keep.txt
[~/hgtest]% echo "build/" >> .hgignore
[~/hgtest]% hg st
? .hgignore
? readme2.txt
[~/hgtest]% hg isignored build
Path 'build' is ignored by:
relglob:build/
[~/hgtest]% hg isignored build/keep.txt
Path 'build/keep.txt' is ignored by:
relglob:build/

忽略文件夹中的所有内容
[~/hgtest]% echo "syntax: glob" > .hgignore
[~/hgtest]% echo "build/*" >> .hgignore
[~/hgtest]% hg st
? .hgignore
? readme.txt
? readme2.txt
[~/hgtest]% hg isignored build
Path 'build' is not ignored
[~/hgtest]% hg isignored build/keep.txt
Path 'build/keep.txt' is ignored by:
relglob:build/*

关于mercurial - 如何确定哪个规则导致文件在Mercurial中被忽略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22801310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com