git bisect primera conjetura fuera de los límites

Estoy tratando de usar git bisect

Identifiqué el mal compromiso de ser:

2ac4ac0a46d902235a51216b24257a977877979a at 19 Oct 2016 

El primer buen compromiso que encontré es:

 6a1d1ec5599d011a75df18075feb1819f1ad8877 at 9 Jan 2016 

Así que corro:

 > git bisect start > git bisect good 6a1d1ec5599d011a75df18075feb1819f1ad8877 > git bisect bad 2ac4ac0a46d902235a51216b24257a977877979a Bisecting: 3639 revisions left to test after this (roughly 12 steps) [51450765b77e07b853b7efd0799aaeb2fbb5a0ea] only show canvas-player controls when not playing && controls = true 

Ahora el problema es que la primera suposition que la herramienta bisect hizo es:

 51450765b77e07b853b7efd0799aaeb2fbb5a0ea at 21 May 2015 

Que está fuera de las 2 dates de confirmación iniciales. ¿Cómo puede ser esto?

Una posibilidad, suponiendo algo como lo siguiente:

 * d4349a4 (master, HEAD) Commit 10 * 9816794 (broken) Commit 9 * abaf79f Commit 8 * e76f38f Merge branch 'branch1' |\ | * e897f8e (branch1) Branch 5 | * d8b71a8 Branch 4 | * 1832b61 Branch 3 | * a821494 (working) Branch 2 | * 12c87e1 Branch 1 * | 2b94daa Commit 7 * | 515bea5 Commit 6 * | 516af15 Commit 5 * | 5a33f68 Commit 4 * | 66c18bc Commit 3 |/ * 7d10cd8 Commit 2 * 71bc62e Commit 1 

Si ejecuta git bisect broken working git bisect visualize --oneline git bisect broken working y luego git bisect visualize --oneline ( para ver los sospechosos que quedan actualmente ) verá algo como:

 9816794 (broken, refs/bisect/bad) Commit 9 abaf79f Commit 8 e76f38f Merge branch 'branch1' e897f8e (branch1) Branch 5 d8b71a8 Branch 4 1832b61 Branch 3 2b94daa (HEAD) Commit 7 515bea5 Commit 6 516af15 Commit 5 5a33f68 Commit 4 66c18bc Commit 3 

La razón por la cual se incluyen las confirmaciones de la twig master es que también podrían haber introducido el error.

git bisect usa la relación "principal" entre commits, no sus dates.

Con acciones como git commit --amend , git rebase o git cherry-pick , puedes crear secuencias de commits donde las dates no coincidan con la secuencia de commits.


Puede verificar en una herramienta gráfica si 51450765b77 encuentra entre 6a1d1ec y 2ac4ac0 , o en un terminal usando git log --graph --oneline :

 git log --graph --oneline [firstgoodcommit]..[badcommit]