【发布时间】:2012-07-19 03:14:09
【问题描述】:
如果用户的代码包含特定字符串,我想警告用户并通过电子邮件提醒人们。
现在我正在使用 post-receive 挂钩,因为需要在服务器端进行检测。
我正在更新服务器端存储库并运行 git diff-tree -r --name-only --no-commit-id $2 | xargs grep foo 之类的东西来检测错误的字符串“foo”。
这种方法的问题:
- 我不喜欢维护存储库服务器端的完整工作版本
- 它扫描整个文件,而不仅仅是更改。 edit 我解决了这个问题,将上面的替换为:
git show $2 | grep ^+ ...
有没有更好的方法来做到这一点?
【问题讨论】:
-
Git 存储文件,而不是 diff。所以不可能只扫描更改。
-
当然你可以得到一个差异。我通过使用 git diff/git show 解决了这部分问题。