如果启用某个#define,如何防止SVN允许提交?

时间:2014-07-21 20:52:16

标签: c svn c-preprocessor

我使用#define宏来启用/禁用我的代码中的自动化测试。例如,我可以使用以下行来启用自动测试:

#define FEATURE_AUTOMATED_TEST

当我提交代码时,我希望禁用此测试,所以我只是将其注释掉:

//#define FEATURE_AUTOMATED_TEST

(通常我不会在C代码中使用C ++风格的注释,但对于这些东西来说非常方便。)

不幸的是,有时我(或其他人)意外地在SVN提交时启用了宏,需要后续的SVN提交才能解决问题。我知道我可以使用某种形式的#warning宏来帮助防止这种情况,但我正在寻找更好的解决方案。 SVN会去的地方“你真的没有男人,你不能那样检查它,因为你已经FEATURE_AUTOMATED_TEST启用了.Dumbass。”

有什么想法吗?我完全愿意改变启用/禁用测试部分的方式...它不必使用#define,但它必须在编译时排除任何禁用的测试代码。

1 个答案:

答案 0 :(得分:2)

您可以使用a subversion pre-commit hook

grep -l '^#define.*FEATURE_AUTOMATED_TEST'

是否存在宏。如果上述命令的退出代码与0不同,您将中止提交。