2016-11-29 1 views
1

Récemment, j'ai migré de SVN vers git et mon équipe a déjà commencé à travailler dans un nouveau dépôt git. Plus tard, j'ai découvert quelques problèmes avec la conversion et ai fait le 2e repet git de SVN avec quelques corrections et réécrit l'histoire.Comment appliquer un patch git sur un dépôt avec un historique modifié?

Maintenant, j'ai la 2ème copie git de repo SVN (whicn je suis satisfait avec) et je veux le patcher avec les modifications qui ont déjà été faites avec mon équipe dans le 1er dépôt git.

Pour cette fin j'essaie d'utiliser les patchs git:

  • git-format-patch --zero-commit --stdout > master.patch pour créer file des changements qui ont déjà été apportées à master du 1er git repo
  • et git-am à appliquer commits de *.patch fichier sur master du 2ème dépôt

Je précise --zero-commit, parce que les hachages dans le fichier de correctif seront faux, sicne j'ai réellement deux dépôts différents.

Le problème est que lorsque je tente d'appliquer le correctif avec git am master.patch j'obtenir:

Applying: %commit_name% error: patch failed: readme.md:5 error: readme.md: patch does not apply Patch failed at 0001 %commit_name% The copy of the patch that failed is found in: .git/rebase-apply/patch When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort".

même quand je n'ai qu'un commettras dans ce patch et je veux l'appliquer sur le même repo pour obtenir le même commettre, mais sur une autre branche.

Répondre

0

On dirait que l'ajout --ignore-whitespace-git am résoudre le principal problème, mais j'a encore warnigs comme:

.git/rebase-apply/patch:56: trailing

warning: squelched 9 whitespace

errors warning: 14 lines add whitespace errors.