Pregunta

En mi proyecto tengo que usar el código de terceros, almacenada en varios repositorios Git. Mi proyecto también se almacena en el repositorio Git (separado). Hay varias personas que trabajan conmigo en el proyecto principal, y yo soy el mantenedor.

En proyectos anteriores solía copiar dependencias manualmente al árbol de trabajo Git, añadiendo un pequeño archivo que especifica el uso versión que yo.

Ahora bien, esto es bastante incómodo ya que necesito para actualizar uno diaria de las dependencias, y con frecuencia contribuyen a mí mismo código, la mayoría de las veces junto con los cambios en el proyecto principal.

he decidido probar submódulos de Git para hacer la gestión. Cuanto más los trato, más frustrado me vuelvo. Incluso parece que la copia manual es, quizás, mejor.

Aquí están algunos de mis preocupaciones:

  • ya no somos capaces de obtener estado del repositorio consistente con un solo comando (git checkout ahora necesita git submodule update --init).
  • No somos capaces de utilizar algunas de las herramientas de Git correctamente (git archive es el más notable).
  • No somos capaces de ver los cambios en el estado / diferenciaciones en submódulos del proyecto principal.
  • Como me acabo de encontrar de una manera dura, git submodule no funciona con opciones --git-dir y --work-tree, y requieren cambio físico del directorio actual al "nivel más alto en el árbol de trabajo".

Parece que con el fin de agilizar nuestros submódulos flujo de trabajo (que es una operación == un comando) tenemos que escribir una bien gruesa envoltura alrededor de Git. Esto es triste.

Tenga en cuenta que no es una opción para alejarse de Git o para el desarrollo de los subproyectos de fusión por completo en el proyecto principal.

Tal vez estoy usando git submodules en un camino equivocado? ¿Hay algún buen tutorial sobre el flujo de trabajo?

Por favor, hable para arriba, incluso si usted no sabe la respuesta correcta, pero no compartir mis preocupaciones. : -)

¿Fue útil?

Solución

Es posible que desee probar git subárbol ( enlace alt ) en su lugar. He tenido mucha suerte con él, utilizando ambos repositorios remotos y sucursales limpias (no vinculadas a la historia master) en mi proyecto.

Otros consejos

Un hilo reciente en la lista de correo de git incluye un parche para la forma de conseguir un estado del repositorio consistente con un solo comando. Se llama básicamente actualización submódulo git al cambiar ramas.

http://thread.gmane.org/ gmane.comp.version-control.git / 130.155 / 130.330 = enfoque

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