Il s'agit de la commande stag-diffp qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
stag-diff - trouve la différence entre deux fichiers stag
SYNOPSIS
stag-diff -ignorer foo-id -ignorer bar-id fichier1.xml fichier2.xml
DESCRIPTION
Compare deux arbres de données et indique s'ils correspondent. S'ils ne correspondent pas, le décalage
est signalé.
ARGUMENTS
-aide|h
montre ce document
-ignore|i ÉLÉMENT
ces nœuds sont ignorés à des fins de comparaison. Notez que les attributs sont
traités comme des éléments, préfixés par l'identifiant de l'élément conteneur. Par exemple, si vous avez
Et vous souhaitez ignorer l'attribut ID, alors vous utiliseriez le commutateur
-ignorer foo-ID
Vous pouvez spécifier plusieurs éléments à ignorer comme ceci
-je foo -je bar -je baz
Vous pouvez également spécifier des chemins
-i foo/bar/bar-id
-parseur|p FORMAT
quel analyseur utiliser. La valeur par défaut est XML. Cela peut également être détecté automatiquement par le fichier
suffixe. D'autres alternatives sont sxpr et je Texte. Voir Data::Stag pour plus de détails.
-report|r ÉLÉMENT
signaler les discordances au fur et à mesure qu'elles surviennent sur chaque élément de type ELEMENT
plusieurs éléments peuvent être spécifiés
-verbeux|v
utilisé en conjonction avec le -rapport interrupteur
montre l'arbre de l'élément discordant
SORTIE
Si une incompatibilité est signalée, un rapport est généré affichant la sous-partie de l'arborescence qui
n'a pas pu être égalé. Cela ressemblera à ceci :
RAISON : no_matching_node : annotation
no_matching_node : feature_set
no_matching_node : feature_span
no_matching_node : preuve
no_matching_node : identifiant de preuve
data_mismatch(:15077290 ne :15077291) : ID de preuve ET ID de preuve
En raison de la nature de la correspondance d'arbres, il peut être difficile de spécifier exactement comment les arbres
ne pas correspondre. Pour enquêter sur cela, vous devrez peut-être utiliser le -r et -v option. Pour ce qui précède
sortie, je recommanderais d'utiliser
stag-diff -r feature_span -v
ALGORITHME
Les deux arbres sont parcourus de manière récursive... voir le code réel pour savoir comment cela fonctionne
L'ordre des éléments n'est pas important ; par exemple
1
2
allumettes
2
1
La nature récursive de cet algorithme signifie que certaines comparaisons d'arbres vont exploser
par rapport au temps et à la mémoire. Je pense que cela ne se produira qu'avec des arbres très profonds où les nœuds sont élevés
en haut de l'arbre ne peut être différencié que par des nœuds en bas de l'arbre.
Les deux arbres sont chargés en mémoire pour commencer, il peut donc s'écraser avec de très gros
INSTITUTIONNELS
AUTEUR
Chris Mungall cjm à fruitfly dot org
Utilisez stag-diffp en ligne à l'aide des services onworks.net