crear - El parche de aplicación de Git falla de forma silenciosa(no se producen errores, pero no ocurre nada)
crear tag git (2)
Estoy tratando de aplicar un parche, y git apply patch no me da ningún error:
sashoalm@SASHOALM-PC /c/Workspace/tesseract-git/api (master)
$ git apply ../../commit-d0d9477
sashoalm@SASHOALM-PC /c/Workspace/tesseract-git/api (master)
$
Como puede ver, no se dan mensajes de error. Pero cuando abro el historial, no se confirma nada y el índice está vacío. Es como si no hubiera emitido el comando git apply
.
No sé cómo solucionar este problema, ya que no hay errores en Google.
Edición: olvidé decirlo, pero estoy tratando de trasplantar mis parches desde un repositorio de Tesseract, donde obtuve la fuente sin control de versiones, creé mi propio repositorio de git vacío e hice algunas confirmaciones. Luego cloné el repositorio de Tesseract usando git svn
, y ahora estoy tratando de mover mis parches allí.
Además de la respuesta de B_, podría pensar que usar git diff --no-prefix
significaría que no necesita usar el indicador -p en el patch
. Parece que estarías equivocado, al menos en la versión del patch
que tengo aquí (2.5), ninguna marca -p no es lo mismo que -p0. -p0 funciona.
Encontré esto mientras buscaba en Google para el problema: http://data.agaric.com/git-apply-does-not-work-from-within-local-checkout-unrelated-git-repository
git apply
no podrá hacer nada cuando se use dentro de un checkout local de un repositorio de git (que no sea el del proyecto para el cual se realizó el parche), como por ejemplo si está parchando un módulo que está dentro de un sitio que está en la versión Git controlar.Use el
patch -p1 < path/file.patch
enpatch -p1 < path/file.patch
lugar.