es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo ejecutar fácilmente git bisect con parches de manera limpia en la parte superior.

Estoy intentando ejecutar git bisect para encontrar un commit roto, pero el problema que tengo es que la falla no es obvia sin una serie adicional de parches aplicados encima. Simplemente estoy seleccionando manualmente los parches de otra rama, pero el problema que tengo es que a veces no se aplican limpiamente durante el bisect y requieren alguna corrección. Eso no debería ser un problema, pero parece que no puedo avanzar después de hacer la corrección.

Entonces por ejemplo…

$ git bisect start
djrscally@valhalla:$ git bisect bad
djrscally@valhalla:$ git bisect good tags/v5.14-rc7
Bisectando: quedan 13382 revisiones por probar después de esto (aproximadamente 14 pasos)
[1ea3615b6168eaaf07445c8d32a4c6bc965d9579] iio: accel: sca3000: Use sign_extend32() instead of opencoding sign extension.
djrscally@valhalla:$ git cherry-pick –no-commit 820aca592e0c^..58915847b332
Auto-merging include/acpi/acpi_bus.h
Auto-merging drivers/acpi/scan.c
Auto-merging drivers/i2c/i2c-core-acpi.c
Auto-merging drivers/regulator/Makefile
CONFLICT (content): Merge conflict in drivers/regulator/Makefile
Auto-merging drivers/regulator/Kconfig
CONFLICT (content): Merge conflict in drivers/regulator/Kconfig
error: could not apply 6a7e459bf029… regulator: Introduce tps68470-regulator driver
hint: after resolving the conflicts, mark the corrected paths
hint: with ‘git add ‘ or ‘git rm

En este punto necesito arreglar los archivos drivers/regulator/Makefile y Kconfig; después de lo cual espero poder continuar, pero no puedo:

djrscally@valhalla:$ git add .
djrscally@valhalla:$ git cherry-pick –continue
error: your local changes would be overwritten by cherry-pick.
hint: commit your changes or stash them to proceed.
fatal: cherry-pick failed

Y ahora no estoy realmente seguro de qué hacer en este punto. git cherry-pick –skip parece que restablece todos los cambios de los parches cherry-pick anteriores. Puedo descartar el –no-commit, pero no estoy seguro de cómo bisect manejará el hecho de que de repente dejé caer un montón de commits encima del punto en el que decidió bisectar.

¿Cómo debo manejar esto?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Puedes intentar utilizar git stash para guardar los cambios locales antes de continuar con el cherry-pick. Esto te permitirá aplicar el cherry-pick sin sobrescribir tus cambios locales. Después de que se complete el cherry-pick, puedes utilizar git stash pop para restaurar tus cambios locales.

    Si todavía tienes problemas, puedes intentar utilizar git bisect reset para restablecer la bisect y comenzar de nuevo. Esto te permitirá hacer cherry-pick de los commits sin interferencia de bisect.

Comments are closed.