2017-03-21 1 views
1

L'ajout de fonctions annotées à un fichier source existant produit des diffs mal alignés. Par exemple, pensez à ajouter la méthode provideNewThing:Les paramètres de diff de Can Git améliorent l'alignement de changement de code source?

@Provides 
Foo provideFoo() {...} 

@Provides 
NewThing provideNewThing() {...} 

@Provides 
Bar provideBar() {...} 

Courir git diff sur la ligne de commande indique:

 @Provides 
    Foo provideFoo() {...} 

    @Provides 
+ NewThing provideNewThing() {...} 
+ 
+ @Provides 
    Bar provideBar() {...} 

Ce n'est pas idéal. Il semble que j'ai introduit l'annotation @Provides à provideBar. Un examen plus attentif montre le contraire, mais c'est facile à manquer.

Idéalement il y a une git diff <some-options> qui sort:

 @Provides 
    Foo provideFoo() {...} 
+ 
+ @Provides 
+ NewThing provideNewThing() {...} 

    @Provides 
    Bar provideBar() {...} 

Est-ce possible?

+0

Avez-vous essayé 'git diff --diff-algorithm = patience'? –

+0

Oui, les algorithmes diff offerts par git se comportent de la même manière pour cet exemple. –

Répondre

1

Oui, parfois l'alignement diff peut être difficile à identifier. Dans ce cas, c'est simple, mais j'ai rencontré des scénarios dont j'ai besoin de garder une trace de ce qui a été ajouté où. J'utilise kdiff3 - Manual diff alignment.

Pour ajouter un alignement manuel diff dans KDiff3:

  • Sélectionner le texte dans une fenêtre enfant
  • Appuyez sur Ctrl + Y
  • Sélectionnez le texte dans une autre fenêtre enfant
  • Appuyez sur Ctrl + Y

Illustration

Notez l'alignement diff dans la capture d'écran ci-jointe.

+0

J'ai joué avec l'idée de configurer un outil de comparaison fenêtré pour des révisions rapides; cela ne semble jamais valoir la peine. Pour les grosses critiques, cette fonction d'alignement différentiel de la fonction bascule! –