Bash 如何仅在本地修改的文件上运行PC Lint(不在SVN服务器上提交)
我试图编写脚本,只在用户本地修改的文件上运行PCLint静态分析器工具,而不是在整个项目上 为此,我需要对所有本地修改的文件运行Bash 如何仅在本地修改的文件上运行PC Lint(不在SVN服务器上提交),bash,shell,grep,lint,Bash,Shell,Grep,Lint,我试图编写脚本,只在用户本地修改的文件上运行PCLint静态分析器工具,而不是在整个项目上 为此,我需要对所有本地修改的文件运行Lint命令 使用svn状态 svn status -u | grep -w M 命令I获取本地修改文件及其完整路径的列表 例如,如果本地修改的文件是asn1\u common\u elements.c,则上述svn命令将输出为 M 10014\Implementations\asn1der\src\asn1\u common\u elements.c 现在我只需
Lint
命令
使用svn状态
svn status -u | grep -w M
命令I获取本地修改文件及其完整路径的列表
例如,如果本地修改的文件是asn1\u common\u elements.c
,则上述svn
命令将输出为
M 10014\Implementations\asn1der\src\asn1\u common\u elements.c
现在我只需要获取filenameasn1\u common\u elements.c
,并使用LINT
命令将其作为LINT asn1\u common\u elements.log
(而不是。c
需要更改为.log
)
如何实现这一点?您可以使用Makefile的功能,只让编译器编译更改后的文件 在Makefile中执行以下操作:
# Create object from C source code
file.o: file.c
gcc -c $(CFLAGS) -o $@
wine lint-nt.exe file.c
现在,文件.c只有在更改后才会被分析。svn status-u | grep-w M的输出是什么?不要认为它会给出您上面提到的文件列表。