发布
社区首页 >问答首页 >如果启用了某个#define,如何防止SVN允许提交?

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

Stack Overflow用户
提问于 2014-07-21 20:52:15
回答 1查看 78关注 0票数 1

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

代码语言:javascript
代码运行次数:0
复制
#define FEATURE_AUTOMATED_TEST

当我提交代码时,我希望这个测试被禁用,所以我只需注释它:

代码语言:javascript
代码运行次数:0
复制
//#define FEATURE_AUTOMATED_TEST

(通常我在C代码中不使用C++风格的注释,但对于这种情况,它非常方便。)

不幸的是,有时我(或其他人)意外地离开了在SVN提交时启用的宏,需要后续的SVN提交来修复问题。我知道我可以使用某种形式的#warning宏来帮助防止这种情况,但是我正在寻找一个更好的解决方案。在这里,SVN会说:“嗯,没有人,你不能这样签入,因为你已经启用了FEATURE_AUTOMATED_TEST。傻瓜。”

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-21 20:53:59

您可以使用subversion预提交钩子

grep -l '^#define.*FEATURE_AUTOMATED_TEST'

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24874530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档