Checkstyle fuente control integración

Estuve investigando el estilo de revisión recientemente como parte de una investigación sobre las convenciones de encoding estándar. Aunque parece que es perfectamente adecuado para nuevos proyectos, parece tener una gran barrera para la adopción de proyectos ya existentes, ya que no parece proporcionar un método para verificar únicamente el código nuevo o editado. ¿Puede ser que esté equivocado?

Si tiene una base de código que nunca ha tenido un estándar de encoding, podría ser un esfuerzo enorme poner toda la base de código en línea con un estándar, todo a la vez. Permitir que se haga de forma gradual a lo largo del time a medida que el código evoluciona naturalmente parece ser un enfoque más razonable. Pero no parece una posibilidad con checkstyle.

Supongo que esto tendría que ser un vínculo con un sistema de control de fuente para que sea posible. ¿Es posible con Checkstyle o hay otra herramienta que pueda proporcionar esta funcionalidad?

Por lo que sé, Checkstyle está destinado a analizar fuente, sin tener en count su historial o revisiones.

Agregar ese tipo de característica significa un análisis de estilo de control de scripts para alimentarlo con el subset exacto de files que representa el delta.

Pero entonces, ciertos types de controles podrían fallar o perderse en su análisis, como la verificación de código duplicado .

Entonces, para ese tipo de análisis incremental, no solo necesita restringir el set de fonts, sino también el set de reglas que desea aplicar, ya que algunas de esas reglas solo tienen sentido en todas las fonts.


Entonces, ¿por qué no podría ejecutar una verificación completa de cada file y luego filtrar los resultados según los cambios administrados por su sistema de control de origen? ¿Algo así existe?

No que yo sepa, especialmente con plugins como eclipse-cs para eclipse: si analizan un file, mostrarán todas las advertencias, aunque el control fuente menciona que el file no ha cambiado desde una revisión dada.

Solo un script externo podría hacer esto:
El principio es simple (aunque podría ser un poco lento en el time de ejecución):

  • para cada file, haz una diferencia para verificar si se han realizado modificaciones
  • en caso afirmativo,
    • hacer una svn blame para anotar líneas con el número de revisión que contenía el último cambio.
    • Luego analiza el file con checkstyle.
  • El script puede filtrar la advertencia de la línea que se está modificando actualmente (o para todas las líneas modificadas después de una revisión determinada).

Desarrollamos un plugin Checkstyle para SCM-Manager , una herramienta para administrar git, subversion y repositorys mercurial. Si está activado, es posible verificar el código fuente comprometido con las reglas de Checkstyle. Si el cheque encontró errores, la confirmación se cancela.