2009-08-20 15 views
26

He logrado introducir ReviewBoard en el flujo de trabajo de codificación en mi empresa, mientras que "presentar" significa haberlo instalado y presentado. También tenemos un acuerdo general de que necesitamos revisiones de código muy, sin embargo, no estamos muy seguros de cómo nos gustaría hacerlo.Estrategia de revisión de código exitosa con SVN y ReviewBoard?

Nuestro control de revisión principal es SVN, por lo que estamos bastante limitados en la bifurcación y la fusión. Algunas estrategias en las que he pensado:

  1. Revisión previa al compromiso desde el troncal. Los profesionales incluyen tener un solo parche, no tener un código sin revisar en el repositorio. Los contras tienen que mantener su pago final limpio o haciendo la ramificación de un hombre pobre con varias cajas
  2. Revisión posterior a la confirmación desde el maletero. Funciona bien con Review Board, sin embargo no impide que las personas cometan código sucio y también les permite ignorar las solicitudes de revisión.
  3. Revisión posterior a la confirmación desde una rama de entidad. Los pros son obvios ya que una característica se puede trabajar de forma independiente, sin embargo, hay un gran dolor en la creación de sucursales basadas en servidores y también un dolor mucho mayor de mantener diferentes ramas sincronizadas. Ver también el ítem 2.

Me gustaría que esto sea lo menos doloroso posible, por lo que hay varias posibles adiciones automáticas al flujo de trabajo, como tener un código de confirmación de robot que obtuvo al menos X "Enviarlo!" vota y haciendo que la Junta de Revisión "siga" una rama de características con commit-hooks. Aún así, no estoy seguro de qué flujo de trabajo de revisión de código podría ser el mejor para nuestro equipo de aproximadamente 8 codificadores. No podremos cambiar los sistemas de control de revisiones, es decir, git-svn y SVK están fuera de discusión (mientras que el último está muerto de todos modos).

¿Puede recomendarnos algo de su experiencia?

Respuesta

4

base que el sistema en la confianza y la rendición de cuentas y mantener un peso ligero:

  1. Utilice el sentido común: 'Usted puede comprobar cualquier cosa en cualquier momento. Solicite una revisión del código cuando lo necesite. Agregue 'revisado por' a los comentarios si fue revisado para facilitar revisiones rápidas.
  2. La placa de revisión es responsable de supervisar los cambios a través de commit hooks. Si ven algo que no les gusta, tómenlo con el desarrollador. Diferentes miembros pueden revisar diferentes secciones.
  3. Si un desarrollador continúa registrando basura sin pedir una revisión, ignórelas.
  4. Si hay secciones del sistema que son inusualmente complicadas/centrales/fáciles de desordenar, asegúrelas y solicite aprobación para registrarse.
  5. Todos pueden controlar los registros. La revisión no es solo para el comité de revisión.

que he visto este trabajo con los desarrolladores y 2 con 100.

+5

pienso ha leído mal "Review Board" como "review board". No es un comité, sino un software: http://www.review-board.org –

5

un combo de su # 2 y # 3 (tal vez con comentarios tronco abreviados si la rama de la característica ya ha sido revisada) puede funcionar bien . Considero que las revisiones previas a la confirmación son un proceso algo sofocante, es mejor tener un entusiasmo (mantenido por usted) para que lo infecte todo el equipo.

Recomiendo leer el libro gratis de SmartBear, Best Kept Secrets of Peer Code Review, que es un tratamiento bastante impar. teniendo en cuenta que su autor vende un paquete de revisión de código comercial. (No trabajo para ellos, ni uso sus productos, FWIW.)

Ese libro lo ayudará a pensar en los posibles flujos de trabajo para su entorno y cómo presentar los flujos de trabajo, explicando al equipo por qué desea apuntar a reseñas de x-cien LoC o menos, o tener un poco de una visita guiada antes de las revisiones, etc.

4

Estamos en una posición similar.

¿Tiene svn configurado para enviar por correo electrónico a todos sus desarrolladores con cada confirmación? Este es un buen primer paso para mantener a todos honestos. Enviamos un correo electrónico con el mensaje de registro, las primeras 200 líneas de la svn diff y un enlace a la totalidad del diff en trac (que básicamente solo se usa para mostrar las diferencias de svn).

Si un desarrollador piensa que un cambio necesita revisión después del hecho, usamos ReviewBoard para realizar la revisión.

Por otro lado, los desarrolladores también pueden solicitar una revisión antes del check in. Ya sea que hayan desarrollado los cambios en una rama de características o en un sandbox de tronco, no hace ninguna diferencia. Hemos considerado adaptar scripts para cargar una solicitud de revisión desde la línea de comandos, pero el proceso es tan simple que aún no lo hemos hecho.

Mi recomendación general es introducir un sistema manual, automatizarlo y posiblemente aplicarlo con secuencias de comandos de precompromiso, una vez que esté satisfecho con el proceso. Con un equipo pequeño, especialmente, es mejor pecar de lado por la aplicación de la presión de los pares porque quiere minimizar el número de pequeños procesos que matan la productividad.

4

Recientemente hemos introducido ReviewBoard en nuestro proceso. Antes de agregar ReviewBoard, teníamos las siguientes cosas en su lugar:

  1. SVN con un correo electrónico enviado automáticamente a todos los desarrolladores para cada check-in.
  2. ViewCV integrado con para permitir que se vea diffs post-commit con un navegador.
  3. El script SCM-bug está integrado con SVN, por lo que los desarrolladores deben incluir una identificación grande con sus registros.
  4. Buildbot integrado con SVN para ejecutar automáticamente las pruebas después de cada check-in.

Como ya teníamos el compromiso posterior cosas bastante bien cubierto con otras cosas, usamos Reviewboard como una herramienta de pre-confirmación y sólo después pulsa 'característica-completo' para un lanzamiento dado.

0

En desarrollos más grandes, las ramas de características son inevitables. Con SVN, no es posible "actualizar" la rama de características desde el troncal a partir de la copia de trabajo. Sin embargo, puede tener frecuentes fusiones y creaciones de nuevas sucursales.

Por cierto, RB sabe manejar también las evaluaciones previas a la confirmación.

1

Estoy de acuerdo con la primera opinión: pre-commit opinión del tronco

Dado que el uso de herramientas codereview, asegúrese de que ningún código sin revisar en el repositorio, y para mantener su obtención limpia

+3

Esta no es una respuesta nueva. En el mejor de los casos, esto debería ser un comentario sobre la respuesta con la que está de acuerdo. – David

Cuestiones relacionadas