Perforce: cómo rastrear "implementaciones" de files

Somos un equipo muy pequeño que utiliza Oracle Forms / Reports como herramientas de desarrollo, y no estamos usando ningún control de versión en este momento. Estamos considerando usar Perforce como nuestro software de control de versiones.

Nuestra política actual es que cualquier desarrollador en el equipo pueda realizar cambios en cualquier file fuente, y luego implementar (copyr manualmente) los files ejecutables generados (.fmx) en nuestras carpetas de producción.

Con Perforce, nuestra política será básicamente la misma, solo necesitamos registrar y rastrear los cambios en el file fuente, así como las implementaciones en nuestras carpetas de producción.

El seguimiento de los cambios en el código fuente es directo. Pero, ¿cómo rastreamos las implementaciones con Perforce? Si esto no se puede hacer con Perforce, ¿puede hacerlo cualquier otro software de control de versiones como Subversion, Git, Mercurial, etc.?

De acuerdo con nuestra discusión en los comentarios sobre la pregunta, creo que lo que está buscando es la function desencadenante de Perforce.

Desde la página vinculada hay un ejemplo:

change-submit //depot/....exe "/usr/bin/test.pl %change%" 

de configurar Perforce para ejecutar un script de testing siempre que un file .exe esté registrado en el depósito. En su caso, sería un .fmx en lugar de un .exe y es posible que desee limitar el desencadenador de todo el depósito a un directory específico.

Sugeriría este arreglo:

  • Use un depot Perforce para los cambios del código fuente
  • Use otro depot para los artefactos binarys que desea implementar
  • Tener algún process (tal vez continuous integration) build y verificar los artefactos
  • En cada destino de deployment, mantenga un espacio de trabajo de Perforce que se correlacione con los artefactos de construcción apropiados.
  • En cada destino de deployment, configure un trabajo cron o tarea progtwigda que simplemente sincronice el espacio de trabajo Perforce en algún intervalo. De forma alternativa, puede usar un daemon de revisión para que los destinos de implementación sepan cuándo ejecutar la synchronization.

Me gusta esta configuration por algunas razones:

  • Tiene una trazabilidad completa entre la fuente y los artefactos de construcción
  • Puede informar fácilmente qué versiones de artefactos se implementan en cualquier destino
  • Puede usar las herramientas Perforce para verificar la integridad de los artefactos en cada objective