Как запустить PC-Lint только на локально измененных файлах(не введенных на сервере SVN)

Я пытаюсь написать сценарий для запуска статического анализатора PC-Lint только на локально измененных пользователем файлах, а не на всем проекте.

Для этого мне нужно запустить Lintкоманду на всех локально измененных файлах

использование статуса svn

 svn status -u | grep -w M 

команда I получить список локально измененных файлов с полным путем

Например, если локально измененный файлasn1_common_elements.c, приведенная выше svnкоманда выдаст выходные данные как
M 10014 реализацииasn1dersrcasn1_common_elements.с

теперь мне нужно взять только имя asn1_common_elements.cфайла и поставить его с LINTкомандой as LINT asn1_common_elements.log(вместо .cнеобходимости изменить на .log)
Как этого достичь?

1 ответ

  1. Вы можете использовать способность Makefile только позволить компилятору компилировать только измененные файлы.

    Сделайте что-то подобное в файле Makefile:

    # Create object from C source code
    file.o: file.c
        gcc                -c $(CFLAGS) -o $@
        wine lint-nt.exe   file.c
    

    Теперь файл.c будет анализироваться только при его изменении.