2009-04-20 8 views
9

La fonctionnalité diff de git a une "détection de copie" - si elle détecte qu'un nouveau fichier est réellement une copie (éventuellement modifiée) d'un fichier existant, la sortie diff montre les différences entre le fichier source et le nouveau fichier. juste un tas d'ajouts d'un fichier vide dans le nouveau fichier. Pour autant que je sache, git diff utilise des heuristiques pour détecter cette situation. Malheureusement, il ne détecte pas un nouveau fichier particulier en tant que copie d'un autre fichier car je suppose qu'il a trop changé. J'aimerais toujours voir le diff comme s'il s'agissait d'une copie. Y at-il un moyen d'informer git diff que le nouveau fichier est une copie d'un autre afin qu'il le fasse pour moi?Puis-je forcer git diff à traiter un fichier comme une copie?

Répondre

3

git diff (au moins ma version 1.5.6 le fait) est livré avec le commutateur --find-copies-harder, qui fait plus de détection de copie intensive du processeur que le -C fait.

+0

J'ai essayé --find-copies plus dur et il n'a toujours pas détecté mon nouveau fichier en tant que copie de un fichier existant. – nohat

0

Je veux juste m'assurer qu'il a été ajouté au repo git.

Aussi si vous connaissez le fichier original, pourquoi ne pas utiliser diff directement?

+0

Utiliser diff fonctionne directement, mais j'aimerais que le diff soit inclus dans mes résultats 'git diff'. – nohat

+0

a le nouveau fichier a été ajouté au repo git? – sfossen

0

Avez-vous essayé de mettre les deux fichiers dans le diff?

quelque chose comme

git diff --stat -p --find-copies-harder -- src/OldFile.java src/main/NewFile.java 

Je suppose que vous avez fait, juste au cas où ...

Questions connexes