有没有办法防止开发人员在使用某些不安全或过时的函数时提交代码?例如:
- 扫描
- 同意
- 得到
- 等..
最佳答案
我工作过的一个项目在包含在每个文件中的 header 中使用一组简单的宏(一些编译器允许您在命令行上指定这样的 header ,因此您可以强制在 makefile 中使用它):
#define strcpy strcpy_is_banned_use_strlcpy
#define strcat strcat_is_banned_use_strlcat
#define strncpy strncpy_is_banned_use_strlcpy
#define strncat strncat_is_banned_use_strlcat
#define sprintf sprintf_is_banned_use_snprintf
使用这些宏,如果您尝试使用被禁止的函数,构建将会失败(链接器会告诉您应该使用什么)。
所以它本身不会在提交时进行检查,但只要您的团队成员确保在他们 checkin 之前构建了东西,系统就可以正常工作。如果他们不这样做,那么每个人都会开始收到构建中断电子邮件,这往往会迅速纠正行为。
简单但有效。
关于c++ - 如果使用某些过时的 C/C++ 函数,则防止使用 svn 提交代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2565556/