6
votes

Alternatives à gnu diff?

DIFF code> produit généralement une sortie plutôt désemparée. Voici un bon exemple. Si nous commençons avec ceci:

 class World
   def hello
-    puts "Hello, world"
+    puts "Hello, #{self}"
   end
-  def goodbye
-    puts "Goodbye, world"
-  end
 end


3 commentaires

Voulez-vous uniquement cli ou les applications graphiques telles que KDIff Travaillent pour vous?


Ouais j'allais dire. Kompare est en fait l'un des meilleurs diffs, imo. Si vous n'étilisez pas la sortie, les diffys basés sur une interface graphique sont beaucoup plus faciles à utiliser que Cli Diff.


Je ne veux pas de mieux afficher pour les mauvais diffs, je veux de bons diffs. Cela semble être pertinent .


3 Réponses :


1
votes

Vous pouvez envisager notre SD Smart Differcer . Il fournit des différences basées sur la structure du code plutôt que sur des "différences de ligne". Elle est donc axée sur les éléments linguistiques (expressions, états, blocs, méthodes) et actions d'édition (supprimer, insérer, copier, remplacer, renommer).

Il est spécifique de la langue; Il doit être d'utiliser la structure linguistique comme guide. Il utilise une définition de languosité explicite. Je ne peux pas vraiment dire ce que vous utilisez (python?). Il existe des outils intelligents différend pour de nombreux langatuges, y compris C, C ++, C #, Java, Python, Fortran, Cobol, ...


2 commentaires

L'exemple est en rubis. Smart Differencer ressemble à ce que ce soit Windows - uniquement, sans prendre en charge la plupart des langues que je veux (et ce qu'ils disent sur le préprocesseur C implique qu'il ne pourra même pas différer la plupart des C), la source fermée (très mauvaise idée pour les outils de développement) et Je ne suis même pas sûr si un mot d'essai télécharger pour voir si cela fonctionne du tout est disponible. Peut-être que d'autres personnes le trouveront utiles.


Quelles langues avez-vous voulu? Oui, il existe des limitations avec C code C en raison de la mise en place arbitraire des directives de préprocesseur et des appels de macro; Ceux-ci rendent très difficile l'identification de la structure de code dans le code C arbitraire. Cela ne travaille pas actuellement avec Ruby; Nous avons joué avec une définition de langue rubis mais ce n'est pas encore prêt .. Oui, c'est une source fermée; Vous êtes invité à écrire une version open source. Vous n'avez exprimé aucun de ces contraintes dans votre question. Il existe des versions d'évaluation disponibles pour une grande variété de langues, notamment Java, C # et C ++. Vous devrez peut-être demander au site Web



1
votes

Je travaille sur un algorithme DIFF qui fait exactement ce que vous voulez, mais cet algorithme que je travaille n'a aucune limite sur le nombre de sources pour le processus de diff. Actuellement, il est en version bêta et toujours testé et jusqu'à ce que ce test soit terminé, la vue en ligne n'est pas fonctionnelle. S'il vous plaît, vérifiez-le et laissez-moi savoir si et comment vous pouvez casser le rapport DIFF afin que je puisse fournir les corrections appropriées.

site: http://prettydiff.com/ ( github )


0 commentaires

2
votes

the RFCDIFF (tirage d'outils diff) signalé ceci:

Entrez la description de l'image ici

L'outil utilise GNU DIFF et WDIFF.


0 commentaires