2011-11-27 4 views
2

Si je tente de corriger ce problème en utilisant git am, il est indiqué que la "détection de format de correctif a échoué".perforce diff à git

Comment puis-je obtenir mes modifications de force et les appliquer à la branche git?

Ce sont les premières lignes de diff

==== //depot/a.c#162 - /asdf/a.c ==== 
4326a4327,4642 
> /* 
> *---------------------------------------------------------------------------- 
> * 
> * -- 
+3

Vérifiez si 'p4 diff' a une option pour créer un * diff unifié. '-u' pourrait valoir la peine d'essayer. – ThiefMaster

Répondre

5

Assurez-vous de produire le diff avec p4 diff -du pour obtenir le unified diff format, qui fonctionne beaucoup mieux avec des outils comme patch, et est (je crois) le seul format que Git comprend.

Vous devrez peut-être également modifier le correctif pour supprimer la syntaxe Perforce; comme vous pouvez le voir, le nom de fichier apparaît comme //depot/a.c#162, que patch et git apply peuvent interpréter comme le nom de fichier réel; a.c#162. Essayez de supprimer la partie #162 si cela apparaît dans votre correctif.

Et selon exactement où vous appliquez le patch, vous devrez peut-être passer -p1-patch ou git apply pour dépouiller le premier / ou -p2 pour dépouiller l'intégralité du répertoire principal.

+0

Une idée de comment obtenir le diff généré en utilisant 'describe' pour être reconnu par' patch'? – haridsv

+0

Salut @Brian, y at-il une commande pour supprimer rapidement tout '# N'. Merci! –

+1

@dien n'a pas Perforce devant moi pour vérifier le format exact, mais quelque chose comme 'sed -Ee 's | (//.*) # [0-9] + | \ 1 |' output.patch' devrait faire l'affaire. Ceci est assez imprécis, vérifiez donc qu'il a produit quelque chose de sensé avant d'essayer d'appliquer le patch. –

0

Utilisez git apply, ou à défaut l'utilisation patch(1) directement, puis valider les résultats.

+0

ni l'un ni l'autre ne fonctionne. –

+1

Pourquoi pas, quelles erreurs obtenez-vous? Quel est votre outil de comparaison Perforce et pourquoi n'a-t-il pas généré des formats de correctifs adéquats? –

+0

j'ai fait p4 diff> fichier et correctif -p0