Herramienta de formatting de código C / C ++ como subversión post-checkin hook

Trabajo en un equipo de 5-6 desarrolladores de software. Todos estamos desarrollando en Linux (principalmente Ubuntu). Estamos usando diferentes IDE / editores para escribir código (emacs, KDevelop, vim, etc.). Me gustaría aplicar una política mediante el cual el código que se compromete sigue un formatting estándar. La solución ideal que estoy buscando es una herramienta de formatting de código (bcpp, por ejemplo) que se especificará como una verificación de publicación de subversión en el gancho. ¿Puede alguien guiarme sobre cómo hacer esto?

También escuché que Ubuntu tiene una herramienta que le permite comparar diferentes herramientas de formatting. ¿Alguien sabe de una herramienta como esta? En caso afirmativo, ¿cuál es el nombre de la herramienta?

La herramienta de command-line de UNIX para corregir el estilo de sangría de un fragment de código se denomina sangría . Además de poder ajustar casi cualquier cosa a su gusto, viene con sets de parameters pnetworkingefinidos para styles de sangría comunes.

También es posible que desee ver el script checkpatch.pl en el tree del kernel de Linux, que es obligatorio para verificar los parches antes del envío.

No es posible (o al less no es recomendable, ver msg de los desarrolladores aquí, al final del capítulo ) cambiar una transacción de compromiso en el server.

La razón es que los cambios no volverán al cliente. El server SVN simplemente dará un "OK" y el cliente piensa que tiene la revisión actual (la que envió a confirmar), que en realidad fue alterada por el script hook, por lo tanto, todos los diffs calculados la próxima vez (en el server y en el cliente) ser incorrecto, ya que el server y el cliente no están sincronizados.

SVN no enviará versiones completas del file confirmado después de una confirmación.

La solución recomendada sería verificar si el file está formateado correctamente y rechazar la confirmación con un post de error, si los files no están formateados correctamente

  1. La acción de "comprobación" no existe en Subversion, por lo tanto, el "enlace de verificación posterior" tampoco puede existir; debe aprender la jerga específica de SVN.
  2. "Me gustaría aplicar una política": hacer cumplir una política es una cuestión de administración de usuarios, no de VCS. Tienes que aprender, cómo hacer una buena pregunta
  3. En realidad, solo los ganchos precompromisos pueden aplicarse (al bloquear el compromiso)
  4. De todos modos, * -hooks no puede modificar el contenido de la transacción, la aplicación asumirá la repetición manual de la confirmación rechazada.
Intereting Posts