Pregunta

Yo estaría interesado en saber cómo ustedes manejar el golpear el número de versión para las nuevas versiones problema.

¿Cómo se puede controlar el número de versión de archivos asociados como el hombre, páginas, etc.

El software es construir con la cadena de herramientas gnu para autoconf, automake, etc están disponibles y se utilizan para el número de versión de la aplicación.De modo que la información puede ser reutilizada.

git es utilizado como un vcs.

Una posibilidad sería introducir un extra, nuevo de destino en el fichero Makefile.soy el que hace una sed/awk para reemplazar el número de versión y la fecha en todos los archivos asociados.Ese objetivo podría ser llamado una vez al principio (a la derecha después de la ramificación) el desarrollo de una nueva versión.

A continuación, el proyecto podría generar con la información correcta cuando la gente iba a hacer un git clone del proyecto o cuando un tarball de la revisión que se hace.Por supuesto, uno tiene que recordar para ejecutar este hacer objetivo al iniciar el desarrollo de una nueva versión.

Otra opción sería hacer el sed/awk reemplazo con un gancho para la dist de destino.Pero esto pondría el repositorio git del proyecto en un estado no eran el número de versión correcto es asociado con los archivos asociados.

Yo prefiero hacer la primera solución como también los registros de la correcto número de versión en el interior del git de la historia.

Cuando se realiza una sed/awk reemplazo prefieres hacerlo "en archivo" o con una plantilla en archivo liek la autoconf/automake herramientas.Veo ventajas y desventajas de ambos métodos.

¿Cómo manejar el el control de versiones de archivos asociados.¿Cambia en el comienzo de la fase de desarrollo, hacer que los cambie cuando justo antes de gastos de envío, hacer infile reemplazo o ¿prefiere el uso de una plantilla?

THX.

¿Fue útil?

Solución

creo que la manera estándar de hacer esto es utilizar el sistema y el gancho de Git m4 o sed / awk para hacer la búsqueda / reemplazo como sugieres. Sólo se necesita una ficha especial en una observación en cada archivo (probablemente en la cabecera).

Aquí está la referencia sobre githooks y aquí está un par de páginas escritas por gente que resuelve el mismo problema :

Ambos se basan en almacenar el número de versión de un archivo en algún lugar de su árbol de fuentes.

También se encontró con una tomó llamados href="http://0install.net/0release.html" rel="nofollow noreferrer"> 0release que pretende automatizar la creación de liberación (y el establecimiento de números de versión

Por último, en relación con los números de liberación, esto se trata en varias otras preguntas:

Otros consejos

Una solución común hoy en día es invocar AC_INIT con un argumento m4_esyscmd para generar la VERSIÓN de git. Por ejemplo, configure.ac de autoconf contiene las líneas:

AC_INIT([GNU Autoconf],
        m4_esyscmd([build-aux/git-version-gen .tarball-version]),
        [bug-autoconf@gnu.org])

donde la acumulación de aux / git-versión-gen es un simple script que llama 'git describir' para generar el número de versión. (Ver gnulib)

Hay desventajas a este enfoque, pero puede ser eficaz.

Utilizamos el sistema major.minor.patch clásica, que consigue aplicar para liberar los candidatos como una 'etiqueta', tenemos un guión que etiqueta una confirmación como número de versión, en lugar de utilizar un 'objeto etiqueta' git. Toda la numeración de versión se hace 'a mano'. Funciona razonablemente bien, porque el número de versión es creada por los scripts '' de colocar en puesta en escena, que es mucho más tarde en el proceso de desarrollo. No nos molestamos utilizando cualquiera de los ganchos de Git, ya que realmente no necesitamos, si una confirmación no está dejando el entorno de desarrollo, entonces no necesita Identificación aparte de que es el código interno SHA.

Tratamos de hacer cumplir que cada lanzamiento 'parche' debe ser compatible a nivel binario con otras versiones con la misma etiqueta importante, menor de edad.

De este modo, cualquier cosa con una etiqueta debe construir al menos, pero es posible o muy probable que no va a funcionar a las especificaciones.

Un refinamiento sería conseguir el departamento de control de calidad para crear un objeto etiqueta firmada en todo lo que es 'de control de calidad aprobado' pero por ahora dependemos de otros papeles para eso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top