Pregunta

Antes utilizábamos muchos submódulos en nuestros principales repositorios, sino para aumentar la capacidad de mantenimiento de nuestros proyectos que empezamos una rama experimental en el que todos ellos sustituido con subárboles.

Esto funcionó bien -. Pero ahora cuando estoy tratando de actualizar uno de los subárboles que se fusiona erróneamente la actualización en un directorio totalmente erróneo que ni siquiera es un subárbol

El repositorio principal, donde la rama "subárbol" contiene la rama experimental, es: git: //github.com/hugowetterberg/goodold_drupal.git

El repositorio de fusionar en las actualizaciones de: git: //github.com/voxpelli/drupal-oembed.git

La fusión haciendo: git merge -s subárbol oEmbed / master

El camino de las actualizaciones se deben fusionarse en: sites / all / modules / oEmbed /

La ruta que se fusionan en: módulos / agregador / traducciones /

Cualquier persona que tenga una idea de cómo obtener las actualizaciones en los subárboles o lo que el error puede ser?

¿Fue útil?

Solución

Por desgracia, esto es un error (o característica que falta) en el código "git merge -s subárbol". En realidad, conjeturas los subárboles que desea fusionar. Por lo general, este arte de magia resulta ser correcto, pero si su sub-árbol contiene una gran cantidad de cambios (o era originalmente vacío, o lo que sea), entonces se puede fallar espectacularmente.

La mejor manera de trabajar alrededor de ella es:

  1. Combinar los archivos como lo hizo anteriormente.

  2. mover manualmente todos los archivos resultantes a donde debe se han ido.

  3. git commit -a --amend para corregir la fusión cometió.

fusiones futuras probablemente funcionan bien, a no ser que este directorio está constantemente en cantidades increíbles de flujo.

El comando experimental " git subárbol " tiene un parámetro --prefix que debe dejar que se anula esto, pero desafortunadamente no funciona en este momento (ya que requiere de trabajo en torno a "git merge -s subárbol" características y no ha habido tiempo para hacerlo).

De todos modos, esto debería ser una situación rara y no será necesaria la solución incluso para futuras fusiones de un mismo proyecto.

Otros consejos

git versión 1.7.9.5

git pull -s subtree <remote name> <remote branch>

(fusión entró en el directorio equivocado)

git reset --hard HEAD^
git pull -s subtree -Xsubtree=correct/directory <remote name> <remote branch>

Tenga en cuenta que no hay una barra diagonal en el directorio

apenwarr

http://git.661346.n2.nabble.com/PATCH-0-8-The-return-of-Xours-Xtheirs-Xsubtree-dir-td4069081.html

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