2010-07-16 19 views
9

Ayer, cuando revisé la última versión de nuestra herramienta interna, vi más de 30 nuevas versiones. Esto me dio curiosidad ya que pensé que alguien finalmente solucionó esos molestos errores y agregó esa característica que estaba esperando tanto tiempo ... ¿y adivinen qué? Nada de esto sucedió, alguien simplemente pensó que sería bueno actualizar algunos encabezados y hacer un ajuste menor de dos o tres funciones. Todo en un compromiso separado. Estupendo.¿Una revisión grande o varias más pequeñas?

Esto generó una discusión en nuestro equipo, ¿debería considerarse correcto o deberíamos prohibir dicho "abuso"? Podría decirse que esto realmente podría caber en uno o dos commits, pero 30 parece mucho. ¿Cómo debe manejarse esto? ¿Cuál es la mejor práctica?

+0

¿Qué es "abusivo" al respecto?También parece que está combinando los conceptos "versiones" y "revisiones" cuando no es necesario. – msw

+1

Si todos tienen la costumbre de leer cada registro de acciones, esta práctica requerirá mucho tiempo del equipo. O el hábito o la práctica es incorrecta. – Konerak

+0

@msw: "abusivo" fue que cada confirmación tenía el mismo mensaje. Olvidé mencionar eso. Pero tiene razón en que los sistemas de control de versiones se han creado para rastrear versiones, por lo que la cantidad de confirmaciones probablemente no sea tan importante para nosotros. – PeterK

Respuesta

6

Debe comprometerse en cualquier momento que realice un cambio y esté a punto de pasar al siguiente.

No debe cometer nada que impida la construcción del proyecto.

Debe completar el mensaje de confirmación para que la gente sepa qué cambios se han realizado.

que va a hacer por mí .. No asumo algo se ha hecho menos que lo veo en el mensaje de confirmación ...

+2

¿No tradicionalmente los mandamientos comienzan con "Tú harás ..."? * SCNR * +1 – sum1stolemyname

+0

@ sum1stolemyname: ¿nunca leyó un RFC? – Konerak

+0

@Konerak: NO DEBE comenzar RFC tradicionalmente con ["Usted DEBERÍA ..."] (http://tools.ietf.org/html/rfc2119)? : p – kennytm

2

no me importa el número de confirmaciones como cada confirmación mantiene consistencia del proyecto (la construcción aún tendrá éxito). Este es un recuento interno que no debería molestarlo. Si quiere cambiar algo aquí, mejor dígale a la gente que use algunos mensajes de confirmación estructurados (como "[corrección de errores] ...", "[función] ...", "[corrección menor]").

Por cierto, si quiere saber si se han solucionado los errores o se han agregado características, usar un sistema de localización de fallos es mucho mejor que comprobar las confirmaciones en una herramienta similar a SVN.

4

Generalmente, creo que una confirmación debe estar relacionada con una tarea lógica, p. solucionando el error # 103 o agregando una nueva función de impresión. Esto podría ser un archivo o varios, de esa manera puede ver todos los cambios realizados para una tarea en particular. También es más fácil deshacer el cambio si es necesario.

Si cada archivo se marca uno por uno, no es fácil ver los cambios realizados para una actualización/tarea en particular.

Además, si se completan varias tareas en una confirmación, no es fácil ver qué cambios pertenecen a cada tarea.

+0

+1 Exactamente, creo que una confirmación debe reflejar un cambio lógico (corrección de errores) , función, refactorización ...), no se relacionan físicamente con un archivo o función. – PeterK

+0

Lo que está haciendo el cambio requiere 2 semanas de trabajo. Seguramente no solo deberías registrarte después de 2 semanas, sino que cada vez que tengas algo que no se rompa. –

+0

@Johann Strydom: cierto, si alguien está haciendo un gran cambio, debería dividirlo en un par de más pequeños. De todos modos, todavía creo que esto se puede hacer de una manera en la que todos puedan entender a partir de los mensajes de compromiso lo que se está haciendo y por qué. – PeterK

1

La batalla contra la entropía del código es un esfuerzo constante del equipo. Los registros menores donde uno solo 'arregla las ventanas rotas' a lo largo de un camino deben ser alentados, no desaprobados. El repositorio fuente es la herramienta incorrecta para realizar un seguimiento de las correcciones de errores, para eso es un rastreador de errores, por lo que la inconveniencia de localizar arreglos al escanear el depósito de código y no el repositorio de errores me parece totalmente despreciable.

Trabajo en un equipo de tamaño moderado en una base de código grande (~ 1M LOC) con un gran historia (~ 20Y). Una gran parte del código es un montón de desorden: lógica de rama podrida, API obsoleta, convenciones de nomenclatura, incluso indentación aleatoria a menudo hace que leer sea un misterio. Inicié un hábito de mejoras de legibilidad menores "drive-by", para tratar de luchar contra la podredumbre total del código, y estoy tratando de conseguir que los compañeros de equipo adopten el mismo hábito.

A menos que sus circunstancias sean radicalmente diferentes, trataría de pensar favorablemente sobre cualquier iniciativa de este tipo. La alternativa (con la que estoy muy familiarizado) es el estancamiento temeroso, que condena a cualquier código a pudrirse.

+0

No se trata de detener a la gente que hace cosas, solo se trata de decir que sería bueno si, cuando alguien solucionó, revisen los cambios en los archivos que arreglaron en una confirmación para que pueda ver todo lo que se modificó. Solo podría ser una línea en un archivo con la comprobación que decía "Error de ortografía fijo en el cuadro de diálogo" que duró 5 minutos. Normalmente observo los cambios que se han cometido cuando hago una actualización para estar al día de lo que está sucediendo en el código. Ver cada archivo marcado individualmente con "Did alguna cosa" no agrega mucho valor. –

Cuestiones relacionadas