调试 – 如何不忘记在代码中删除调试行

这在我看来是一个新颖的想法(因为我没有找到任何解决方案或任何人已经实现它)…

A shell script that automatically runs whenever you git commit or whatever that will let you kNow if you forgot to delete any debugging or development env specific lines of code in your project.

例如:

通常(在我的Ruby项目中)我会留下代码行来输出变量

puts params.inspect

要么

raise params.inspect

此外,有时我会使用不同的方法,所以我可以很容易地看到效果,例如在使用delayed_job的情况下,我宁愿在开发期间没有延迟地调用方法.

问题是有时候我忘记更改这些方法或忘记删除调用以引发params.inspect,我会无意中推送该代码.

所以我想也许最简单的解决方案是为任何这样的调试行添加注释,例如

raise params.inspect #debug

本质上将该行标记为仅开发/调试行.然后在一个shell脚本之前运行一些其他命令,比如git commit,它可以使用awk或grep来搜索#debug注释的所有最新修改文件并停止执行并提醒你.但是我不太了解shell脚本,所以我想我会请求帮助:)

虽然我全心全意地建议遵循cdeszaq’a的建议并且不鼓励做这种事情,但是编写一个git钩子会很容易阻止你用特定字符串提交任何行.为简单起见,我没有展示git rev-parse – 验证HEAD,你应该使用它来使这个钩子在初始提交时起作用,但是如果你只是将以下内容放在.git / hooks / pre-commit(和make)中它可执行),您将无法提交包含字符串’#debug’的任何代码行:
#!/bin/sh

if git diff-index -p -M --cached HEAD | grep '#debug' > /dev/null; then
  echo 'debug lines found in commit.  Aborting' >&2
  exit 1
fi

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...