J'essaie d'appliquer un correctif qui inclut des fichiers binaires avec git apply
mais seuls les fichiers sont ajoutés. J'ai essayé d'exécuter git apply failing.patch -v
et il affiche quelque chose comme:
Patch ignoré 'fichier.txt'.
Vérification du fichier patch.bin ...
Correctif appliqué fichier.bin.
Comment puis-je savoir quelle est la raison du saut? Comme le message actuel n’est pas très éclairant.
J'ai découvert le problème en exécutant patch -p1 < failing.patch
qui imprimait:
ne peut pas trouver le fichier à corriger à la ligne 5
et m'a rappelé que je n'étais pas dans le répertoire racine.
Je ne comprends pas pourquoi personne ne l’avait demandé auparavant et pourquoi le message commenté n’est-il pas détaillé.
En outre, même pas la documentation officielle ne mentionne le saut et les causes possibles.
Souffrant de ce problème tout en essayant de porter les modifications d'un projet à l'autre. git apply
semble ignorer tous les noms de répertoires figurant sur les chemins d'accès aux fichiers du correctif, et refuse également de s'appliquer si la ligne Index ne correspond pas à un hachage de fichier dans le référentiel cible. J'ai eu plus de succès en utilisant ces options (dont --no-index
semble être non documenté):
git apply --verbose --no-index --directory {subdir} {patch-file}
Vous avez le même problème. Dans mon cas, la source d'erreur était le dossier .git
dans certains des répertoires parents de la cible du correctif. La solution consistait à déplacer la cible du correctif en dehors de ce répertoire parent.