9个稳定版本
使用旧的Rust 2015
1.0.8 | 2023年4月19日 |
---|---|
1.0.7 | 2020年8月17日 |
1.0.6 | 2017年2月13日 |
1.0.5 | 2016年10月5日 |
1.0.1 | 2015年6月20日 |
#33 在 #say
6,091 每月下载量
在 16 个Crates中(15个直接)中使用
31KB
464 行
gitignore.rs
⛔️ 重要:此项目已存档。请不要使用此crate构建新的软件!
项目状态
我开始这个项目是为了解决一个非常具体的痛点,即快速检查某些文件是否被忽略——当时并没有过多关注正确性,只是解决了我当时的具体问题。
2017年,当我还在不定期地更新这个crate时,我收到了一些关于需要修复的问题的反馈,以便在更广泛的场景中发挥作用。当时,我承诺进行大量工作来重新设计这个crate的内部工作方式,因为我当时在结构上的决定是事后看来不够好的——如果我知道现在野外的使用情况和我在开始这个旅程时没有考虑到的边缘情况,事情会有所不同,但你知道事后诸葛亮!
我开始工作,但随着时间的推移,工作变得越来越慢,最终基本上停止了这个crate的所有工作。遗憾的是,我大大高估了自己成为父亲后维护开源项目的时间。
现在,5年过去了,我仍然偶尔看到一些问题出现,我觉得我有责任最后一次说,我将存档这个crate以造福社区,并将支持你们过渡到真正工作的crate!放手一个问题真的很困难,特别是当它仍然是我愿意工作的一个问题——但我必须诚实地谈谈我能用来做这件事的时间。
我真的很抱歉那些依赖这个项目的人现在不得不做出改变,但感谢你们信任我并提供了极好的反馈——这是一份荣幸。对于那些在我之后走这条道路的人,感谢你们为我们所有人做了一些有趣且具有挑战性的工作,祝你们好运!
祝你们一切顺利——如果我可以以任何方式帮助你们迁移到其他地方,请通过 使用我网站上的联系方式给我发信息。
替代方案
ignore
Crate
本项目的最合理替代方案当然是 @BurntSushi 的 ignore
crate。这个crate实现了ripgrep的ignore功能,正如你所想,Andrew将其做得非常快,并且经过实战检验——你应该使用它!它还正确实现了许多这个crate从未实现的功能!
它还没有很好地实现这个crate的一个主要用例,即检查单个文件是否被忽略,因为它更专注于遍历文件树并批量返回未忽略的文件(如示例所示)。但是,根据你的用例,你可以将暴露的原始部分粘合在一起来自行实现。
Gitignore
—— 这个结构体有一个matched
函数 和一个matched_path_or_any_parents
函数,可以用来检查文件与单个ignore文件是否匹配,比如在仓库根目录或动态提供的目录下。WalkBuilder
—— 这个结构体可以用来构建一个FS遍历器,该遍历器会尊重所有的.gitignore
文件。大多数人可能都会想要这个功能,以便根据ignore文件忽略内容,不仅限于仓库根目录,还包括嵌套的文件夹,同时也要尊重任何全局ignore规则。
如果有人有兴趣从这里接手接力棒,我强烈建议你考虑是否可以通过PR将此功能添加到ignore
crate中,或者创建一个简单的包装器作为另一个crate。
git2
Crate
你也可以考虑使用实际的Rust包装器libgit2
,通过is_path_ignored
函数达到相同的效果,尽管请注意,这个函数会执行文件系统操作,因此期望文件存在于结构良好的实际Git仓库中——这可能不适合你的用例。
原始README
如果需要,你可以找到这个仓库的原始README。
许可证
以下两种许可证之一授权:
- Apache License 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非你明确声明,否则任何有意提交以包含在你工作的贡献,根据Apache-2.0许可证定义,都将按照上述方式双重许可,不附加任何额外条款或条件。
依赖项
~48KB