4

在预提交挂钩期间从我的源文件中清除开发代码是一种好方法吗?

例如,我有调用 xdebug_break() 的代码,并且我想在将代码提交到存储库之前从任何具有该函数的文件中删除对该函数的调用。我宁愿在调用它之前不检查该函数,因为我是唯一一个希望在那里调用该函数的人。

4

2 回答 2

13

预提交钩子应该只用于检查提交,而不是修改它。因此,您可以使用它来检查您的提交中是否有不需要的代码,如果没有则中止提交,但您不应该以任何方式使用它来修改提交。

可以使用过滤器属性来运行程序以在提交源之前“清理”您的源;但我建议不要这样做。删除源代码行可以改变程序的行为。你不应该以提交的形式提交任何你没有测试过的工作。

于 2010-01-13T20:39:02.540 回答
0

在提交之前让 precommit 钩子修改代码是可以的。例如,开发团队可能会使用 precommit 挂钩来自动重新格式化任何已提交的代码,以自动执行该团队的编码约定。

根据评论,我正在更改我的答案 - svn 手册特别建议 ​​AGAINST 更改提交的内容,因为它可能会搞砸客户端缓存。Git 的工作方式不同,因为存储库是本地的,但我想原理是一样的。

至于你提到的具体用例;为此使用 precommit 钩子似乎有点不合常规。通常,预提交挂钩用于更一般的目的。也就是说,如果您是唯一的开发人员,您可以随意使用它。只是不要忘记它就在那里。

于 2010-01-13T20:59:12.277 回答