¿Cómo se hace un seguimiento de los cambios de código en una base de código compartida?

Estoy interesado en escuchar lo que otras personas hacen para comprender / revisar los cambios de código que fueron cometidos por otros miembros del equipo a un sistema de control de versiones.

¿Qué processs tiene para asegurarse de que se notifique a todas las personas que necesitan saber acerca de una revisión?

¿Qué tan bien funciona este sistema para usted (y su equipo)?

Para su información, actualmente utilizamos nuestro propio guión de desarrollo de ant de cosecha propia que verifica el código de CVS y lo envía a todas nuestras máquinas de testing cada 15 minutos. Escribimos un código basado en la web que es todo interpretado. Las "comstackciones" del sistema rara vez fallan y nuestro código de testing tarda al less unas horas en ejecutarse, por lo que no podemos ejecutarlo después de cada confirmación.

Sistema actual

Actualmente, mi compañía depende principalmente de la comunicación de persona a persona. Es responsabilidad de la persona que confirma el código asegurarse de que se revise antes de que se ingrese el código.

Después de ser quemado una vez, agregamos un process de revisión de código adicional a través de un CVS commit hook para los files más importantes ("core") que tenemos. Cuando alguien cambia un file que está marcado con un comentario que contiene @core, se envía un correo electrónico al equipo responsable de ese file y el confirmador necesita que se revise el código con otro miembro. Este correo electrónico se envía cada 2 horas hasta que se marca como completo en nuestro software de seguimiento de errores.

La gente generalmente actualiza su código fuente a primera hora de la mañana y espera que ninguno de los cambios recientes los perturbe demasiado.

Los amplios cambios en la base de código deben anunciarse a todos a través de una list de correo electrónico.


Donde el process se descompone

  1. Cuando las personas introducen errores en el sistema, es difícil saber qué files se han cambiado recientemente. (Usamos casi todos los códigos interpretados, por lo que el comstackdor no capta la compilation)
  2. Sin un acceso fácil a una secuencia de posts / files modificados, es difícil saber exactamente qué files están tocando las personas. (¿Alguien tiene una buena herramienta para esto en CVS que realmente usan día a día?)

CruiseControl.NET proporciona la capacidad de transmitir correos electrónicos a los desarrolladores cuando se registra un cambio en el repository de control de origen.

Aunque mi preference es una solución "pull" en lugar de "push", mediante la cual los desarrolladores pueden ver changesets / checkins a través del website.

Por lo general, en nuestro sistema no hacemos un seguimiento de los cambios realizados por otros, solo en el conflicto de files o interés revisamos los compromisos realizados por otros.

Para la revisión del Código tenemos un sistema separado ( CodeStriker ) que plantea la request de revisión automática del código en la confirmación.

Usamos SVN, donde puedes utilizar el enlace post-commit para generar cualquier notificación.

También puede usar el notificador SVN .

Tenemos configurada CCNet , que genera una notificación de aprobación / falla en la confirmación.

No sé con qué plataforma está trabajando, pero lo más fácil es get CruiseControl, Hudson o algo similar y simplemente dar la dirección a quien tenga interés (léase: intrest) en el código. Cuando utilizas un sistema de compilation como ese, los check-ins se hacen públicos, las construcciones se hacen públicas, por lo tanto, los éxitos y fracasos son públicos. Cualquiera sea el caso que estés buscando; puedes hacer algunas cosas:

  • Sigue los cambios a medida que ocurren.
  • Permitir que las partes interesadas participen
  • Permitir que las partes interesadas sean responsables de la comunicación de los cambios de código individuales
  • Dar un enlace RSS a las comstackciones
  • Proporcionar correo electrónico cuando ocurre una construcción

Esto es realmente útil para mi equipo, así como para los equipos con los que interactuamos, porque permite que todos puedan estar en sintonía, sin perder time comunicando detalles minuciosos a una parte interesada que puede o no comprender (léase: cuidado) sobre la actualización que acabas de comprometer

Usamos FishEye en nuestros repositorys CVS / SVN. Es una herramienta comercial, sin embargo vale cada centavo para nosotros porque agrega muy buenas características de búsqueda y seguimiento en nuestra base de códigos:

  • Agrupa los commits de CVS (si ingresas un par de files a la vez con el mismo comentario de commit, habrá un set de cambios en FishEye). Estos sets de cambios forman el punto de partida de las revisiones de código.
  • Se puede configurar para habilitar relojes. Después, cada desarrollador puede configurar relojes en carpetas o files interesados ​​y recibir correos electrónicos inmediatos (o diarios) sobre los cambios en ellos.

Además, usamos Hudson como un sistema de continuous integration. Después de que instalamos el complemento Chuch Norris , todos intentan no romper las comstackciones 🙂