我import pdb;pdb.set_trace()经常承诺。
有什么方便的方法可以阻止我这样做吗?
我使用 emacs/git (magit)。
为了完整起见,以下是如何检查索引中版本的内容,构建尤金的答案并进行一些更改(未作为完整的钩子进行测试,但应该可以工作):
#!/bin/sh
has_import=false
git diff --cached --no-renames --name-status --diff-filter=AM |
while read st file; do
case "$file" in
*.py)
if git show ":$file" |
grep -E "^[^#]*\bimport[[:space:]]+pdb\b"; then
echo "$file: has import pdb"
exit 1
fi;;
esac
done || has_import=true
if $has_import; then
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
最重要的变化是git show ":$file"技巧,它用于git show从索引中提取暂存版本。
我也:
--no-renames以使重命名的文件显示为Added (处理起来R比较困难,不妨将它们视为新文件);C因为如果触发它就会失败(因为“其他”文件名也会被打印,就像Renames 一样,但我认为它无论如何都不会在这里触发);case;删除了一些特定于 bash 的语法 和from pdb import ...,或更可能执行类似 的操作import collections, pdb,但它不会捕获;但现在它可以处理 后的多个空格import,并避免错误命中,例如import pdbase)。has_import稍后可以使用的变量。(如果您以后不打算使用任何东西,您可以消除该变量并exit 1直接使用那里,正如他建议的那样。)(这仍然至少有一个小缺陷:提取的文件内容没有应用任何污迹过滤器。但是,如果您的污迹和清洁过滤器添加和删除行import,我怀疑预提交挂钩无法为您提供任何帮助。 :-) )
| 归档时间: |
|
| 查看次数: |
524 次 |
| 最近记录: |