Mercurial: ¿Indica que una twig ha pasado la testing?

Estoy trabajando para establecer un flujo de trabajo en mi empresa si tuviéramos que migrar a DVCS (probablemente Mercurial). Una de las cosas que me gustaría hacer es tener un repository para QA. La idea es que cada desarrollador trabaje en una sucursal y, cuando hayan terminado, la sucursal pasará a control de calidad. A partir de ahí, el equipo de testing puede hacer sus testings e informar cualquier error. Una vez que la twig se haya probado completamente y sea aceptable, se enviará a un repository de etapas donde se producirá la fusión con la línea principal antes de pasar al repository central.

Esto puede funcionar con bastante facilidad si todos comunican el estado de su trabajo de alguna manera, pero sé que esto no siempre sucede como a usted le gustaría. Lo que me preocupa es que las sucursales en el repository QA estén esperando, pero nadie sabe si está esperando a que lo prueben, si están en fase de testing, esperando arreglos, esperando ser empujadas al área de preparación, etc. Entonces, lo que estoy buscando son ideas de cómo se puede agregar un estado a una sucursal? Lo que también sería bueno sería hacerlo de una manera que pudiéramos usar ganchos para notificar a las personas sobre los cambios en el estado.

Cualquier idea sería apreciada.

Lamentablemente, creo que necesita un sistema diferente para realizar un seguimiento de esta parte de su flujo de trabajo.

Un repository consiste en cosas que no se supone que cambien de todos modos, pero el estado de Q & A actual cambiará ortogonalmente a los contenidos del repository.

Déjame reformular eso. Tiene 10 sets de cambios en el repository de preguntas y respuestas, listo para ser probado. Exactamente en qué se enfoca cada probador, el estado de cada testing, etc. cambiará, aunque esos 10 sets de cambios permanezcan iguales.

Definitivamente intentaré usar un sistema de seguimiento de errores donde puede integrar el historial del repository de alguna forma, incluso si solo está vinculando un problema en el sistema con su set de cambios.

Noto su comentario acerca de no get soporte para comprar Horno, pero hay otros sistemas que debería poder integrar que le darían algo similar.

Me resistiría mucho a tratar de presionar a Mercurial para que sirva a algo que no estaba diseñado para soportar, tratar de usar tags para esto fallaría miserablemente, y los marcadores te darían problemas, como ya has notado.

De nuevo, intente encontrar un sistema separado para realizar un seguimiento del estado de preguntas y respuestas.

Un método simple podría ser mantener un file de metadatos en la carpeta raíz de su repository, llamado .teststatus o somesuch, que se ve así:

 # branch-name, last passed revision default, 0123456789ab stable, 0123456789ac bobs-dev-branch, 0123456789ad marys-dev-branch, none 

Usar tags o marcadores se sentiría como una especie de abuso, aquí. No podría usar la misma label en las sucursales (por ejemplo, passed debería pasar de forma stable-passed ), y las tags generalmente no se están moviendo. Los marcadores, por otro lado, están destinados a moverse, pero aún tiene problemas con el espacio de nombres de twigs.

Joel Spolsky, uno de los fundadores de este sitio, produce un progtwig llamado FogBugz que está integrado con Mercurial y facilita el seguimiento del estado de todos.

No estoy completamente seguro de cómo funciona su flujo de trabajo, pero aquí hay algunas ideas:

  1. Etiquetas
  2. Use twigs con nombre y cierre la twig cuando se pruebe. Al teclear hg branches le mostrarán qué twigs están todavía pendientes.

Probablemente podría usar un gancho entrante para la notificación automática de nuevos sets de cambios agregados al repository de QA.

¿Por qué un desarrollador empujaría algo a un repository QA si no estaba listo para ser QA'd? Creo que el hecho de llevar los sets de cambios a un repository designado por QA debería ser la señal de que la característica está list para ser probada.

La característica twigs por clonación es mi enfoque favorito.