支持非根 VCS 忽略
[.gitignore] (https://git-scm.com/docs/gitignore) 文件不必活在工作目录的根部:
图案从路径所在的同名目录中的.gitignore文件读取,或者在任何父目录(上到工作树的上层)中读取,较高级别文件中的图案被下到包含文件的目录中的图案所覆盖. 这些图案与.gitignore文件的位置相匹配.
Hatchling 假设最多有一个.gitignore文件,并且它描述了相对于工程根的路径. 这在几个方面与git的行为不符:
1)如果.gitignore在项目根的任何祖先中被找到,则路径相对于错误路径被解释. 这个问题也被传播给sdists,因为.gitignore文件被作为-is复制到源目录.
< 细节> <摘要>示例</摘要>
иre
. 吉蒂格诺尔
└──
[永久失效連結] LICENSE.txt
读取
QQ 忽略 我
├──
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
(原始内容存档于2017-09-29). QQ.
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
测试
(原始内容存档于2018-09-22). QQ..gitignore可能包含 " foobar/ignoore me " 模式,它足够有效。 但Hatchling将无法应用模式排除忽略 我. 如果内部的 " foobar " 目录中恰好有同名文件,则将不慎排除在外。 </详情>
- 被忽略的每个指令.gitignore文件.
我不使用Mercurial了, 但我想1会应用在那里。 Mercurial限制.hgignore文件活在repo的根上,所以不可能有多个. 但你可以在Hg Repo的子目录里有个项目
如果Hatch/Hatchling能像VCS那样做就好了.
-- -- . . .
我不知道1的解决方案是否涉及在斯地克建筑时间重写.gitignore,使相对项目目录(或将修改过的图案写入斯地克平面项目)的相对图案(有‘/'不是结尾的图案). toml 而不是包含.gitignore文件).
. . . . . 意思是,当父母旅行时,你无法在发现的第一个.gitignore时停下来,因为上面可以有一个更普通的。 当到达工作树根时(即发现".git"时), Traversal应该停止. 但当你打开一个sdist 你没有.git。
我甚至不想开始思考子模块.
内容来源: pypa/hatch