2010-07-24 11 views
6

Hasta ahora he utilizado el control de versiones para proyectos simples basados ​​en web que realmente no tienen una etapa de compilación. Ahora he bifurcado un proyecto relativamente grande que sigue el patrón estándar "./configure; make; make install". No estoy seguro del flujo de trabajo adecuado para este tipo de proyecto.Compilación de flujo de trabajo con control de versión

¿Qué hago con todos los archivos creados desde el proceso de compilación?

  • ¿Agregar muchas cosas a .gitignore? Esto es difícil, porque no creé el proceso de compilación y realmente no entiendo todo lo que se crea.
  • ¿Desea cerrar el proyecto en otro lugar para cada compilación? Esto parece un dolor, dado que a menudo construyo cada pocos minutos.
  • Solo asegúrese de nunca agregar algo que desconozco, es decir, nunca lo haga git add . En caso afirmativo, ¿cómo debo realizar la limpieza de vez en cuando?

Obviamente esto es algo que todo el mundo que trata con el código compilado se enfrenta, entonces estoy seguro de que hay un patrón aceptado, simplemente no estoy familiarizado todavía.

+0

¿Está utilizando autotools (es decir, su proyecto contiene archivos configure.ac/configure.in/Makefile.am)? – Scharron

+0

@scharron: Sí, el proyecto está utilizando autotools. – Tristan

Respuesta

6

Estoy de acuerdo con ChrisF, no guarde los binarios generados por la construcción en su repositorio. Su objetivo debe ser tener un buen archivo .gitignore, de modo que en cualquier momento ejecutando git status no se muestren "archivos sin seguimiento". Eso significa que git ignora o rastrea todos los archivos.

Un procedimiento que utilizo para construir mi .gitignore es la siguiente:

  1. complemento y cometer toda fuente al proyecto (antes de que algo se construyó)

    cd project

    git add .

    git commit -m'initial import'

  2. agrega patrones simples de archivos que serán ignorados a .gitignore; esto incluye tings como * .o, * .so.

    echo '*.o' > .gitignore

    echo '*.so' >> .gitignore

  3. Luego ejecutar la construcción.

    make

  4. Luego ejecutar

    git ls-files -o >> .gitignore

    que recoger todos los archivos que se generan en circulación, que no se hayan indicado con patrones globales.

-Bart

1

No debe poner archivos intermedios o de salida bajo control de fuente. Si lo hicieras, tendrías que revisarlos para que los archivos puedan escribirse cada vez que compiles y construyas la solución.

No dice qué IDE (si lo hay) que está utilizando - verifique si puede agregar el proyecto al control de código fuente para usted. Si puede, entonces use esta opción, ya que solo agregará aquellos archivos que sean absolutamente necesarios.

4

para limpiar el directorio de trabajo, puede utilizar git clean. No hará ningún daño por defecto, a menos que especifique el indicador -f (force).

La línea de comando git clean -xfd eliminará todo en su directorio de trabajo, que no está en control de versión.

3

La estrategia simple es almacenar la salida en otro directorio, p. compilar y luego ignorar este directorio. Puede configurarlo de esta manera:

mkdir build && cd build && ../configure 
Cuestiones relacionadas