我在我的Python项目中使用git-lint。
我的git仓库的根目录中有一个.gitlint.yaml
文件,其中包含
pylint:
extensions:
- .py
command: pylint
arguments:
- "--rcfile={DEFAULT_CONFIGS}/.pylintrc" # doesn't seem to work
- "--disable=all" # doesn't work either
- "--output-format=text"
- "--msg-template='{{abspath}}:{{line}}:{{column}}: [{{category}}:{{symbol}}] {{obj}}: {{msg}}'"
- "--reports=n"
filter: "^{filename}:(?P<line>{lines}):((?P<column>\\d+):)? \\[(?P<severity>.+):(?P<message_id>\\S+)\\]\\s+(: )?(?P<message>.+)$"
installation: "Run pip install pylint."
我甚至创建了一个~/.config/pylintrc
文件,其中包含
indent-string=\t
但是当我运行git lint
时,不会禁用任何警告,尤其是line 41, col 0: Warning: [mixed-indentation]: Found indentation with tabs instead of spaces
警告。
我已经断定(并验证)~/.config/pylintrc
文件根本没有被处理。
为什么pylint会忽略所有配置选项?我可以采取哪些故障排除步骤?我最好的猜测是,当由git lint执行时,pylint由我以外的其他用户运行。
答案 0 :(得分:2)
我在test/unittest/test_gitlint.py
中看到了:
self.root = '/home/user/repo'
git_config = os.path.join(self.root, '.gitlint.yaml')
所以你的配置应该在正确的位置
但请检查/home/user/.git-lint/cache
中是否提到了缓存问题(issue 34)。
如果自写入缓存后
.gitlint.yaml
已更新,则输出缓存应无效 否则,您可以编辑配置以例如忽略错误类型,但在重新运行时它仍然存在。
答案 1 :(得分:0)
我遇到了同样的问题。我的解决方法是删除.gitlint.yaml
文件中的rcfile参数行。
然后,它根据how pylint searches for it选取了正确的rcfile。另外,我需要使用以下命令删除缓存目录:
rm -r ~/.git-lint/cache