2012-03-27 22 views
7

Mi repositorio de git tiene ~ 2,000 confirmaciones. Para fines educativos, he estado jugando con git rebase -i.Idempotent git rebase falla con conflictos espurios?

Cuando escribo git rebase -i first-commit (donde first-commit es una etiqueta para el primer commit al repositorio) y cambie nada en absoluto (es decir, dejar todo pick <hash> sin tocar), git comienza repitiendo mi historia, pero no en la de confirmaciones citando conflictos docenas. ¿Qué podría causar esto? ¿Por qué no solo reproduce mi historia completa?

Respuesta

6

Intenté volver a crearlo con un proyecto de código abierto, y obtuve resultados similares, se informaron los conflictos cuando se rebase el primer compromiso utilizando rebase interactive.

Lo ejecuté por segunda vez y noté que estaba sucediendo en la misma confirmación.

git clone git://git.lttng.org/lttng-tools.git 
git tag first-commit fac6795 
git rebase -i first-commit 

Could not apply e4baff1... listing and activation of loglevel by number 
git rebase --abort 

parece que el conflicto estaba pasando cerca de un punto de fusión:

* 843f5df (HEAD, tag: new-tag) API change for lttng_destroy_session prototype 
* 90192ee Merge branch 'master' 
|\ 
| * 4dbd54a update loglevel printout 
| * e4baff1 listing and activation of loglevel by number 
* | 76d45b4 Add support for UST enable all tracepoints 
* | 6181537 Cleanup lttng enable event command 
|/ 
* 13dce3b loglevels: allow enable/disable 
* 81afa34 Add loglevel to event list 
* 57ab763 ABIs now support 256 char event names 

ejecutar el rebase de nuevo con la opción -p fue exitosa aunque:

-p, --preserve-merges 
      Instead of ignoring merges, try to recreate them. 

      This uses the --interactive machinery internally, but combining it with the --interactive option explicitly is generally not a 
      good idea unless you know what you are doing (see BUGS below). 

git rebase cambiará la historia para ser más lineal. Como hay fusiones en la historia, tendrán que resolverse si hay conflictos cuando el punto de fusión se aplana.