Questo è il comando stag-diffp che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre numerose workstation online gratuite come Ubuntu Online, Fedora Online, l'emulatore online di Windows o l'emulatore online di MAC OS
PROGRAMMA:
NOME
stag-diff - trova la differenza tra due file stag
SINOSSI
stag-diff -ignore foo-id -ignore bar-id file1.xml file2.xml
DESCRIZIONE
Confronta due alberi di dati e segnala se corrispondono. In caso contrario, la mancata corrispondenza
è riportato.
ARGOMENTI
-aiuto|h
mostra questo documento
-ignora|i ELEMENTO
questi nodi vengono ignorati ai fini del confronto. Si noti che gli attributi sono
trattati come elementi, preceduti dall'ID dell'elemento contenitore. Ad esempio, se hai
E se vuoi ignorare l'attributo ID, allora dovresti usare lo switch
-ignora foo-ID
Puoi specificare più elementi da ignorare in questo modo
-i foo -i bar -i baz
È anche possibile specificare i percorsi
-i foo/bar/bar-id
-parser|p FORMATO
quale parser utilizzare. L'impostazione predefinita è XML. Questo può anche essere rilevato automaticamente dal file
suffisso. Altre alternative sono sxpr e itestoPer maggiori dettagli, vedere Data::Stag.
-report|r ELEMENTO
segnalare le incongruenze non appena si verificano su ciascun elemento di tipo ELEMENT
è possibile specificare più elementi
-verboso|v
utilizzato in combinazione con il -rapporto interruttore
mostra l'albero dell'elemento non corrispondente
USCITA
Se viene segnalata una mancata corrispondenza, viene generato un report che visualizza la sottoparte dell'albero che
non è stato possibile trovare una corrispondenza. Apparirà così:
MOTIVO: no_matching_node: annotazione
no_matching_node: set di funzionalità
no_matching_node: feature_span
no_matching_node: prova
no_matching_node: id-evidenza
data_mismatch(:15077290 ne :15077291): id-evidenza E id-evidenza
A causa della natura dell'abbinamento degli alberi, può essere difficile specificare esattamente come gli alberi lo fanno
non corrispondono. Per indagare su questo, potrebbe essere necessario utilizzare -r e -v opzioni. Per quanto sopra
output, consiglierei di utilizzare
stag-diff -r feature_span -v
ALGORITMO
Entrambi gli alberi vengono attraversati ricorsivamente... vedere il codice effettivo per come funziona
L'ordine degli elementi non è importante; ad esempio
1
2
fiammiferi
2
1
La natura ricorsiva di questo algoritmo implica che alcuni confronti ad albero esploderanno
per quanto riguarda il tempo e la memoria. Penso che questo accadrà solo con alberi molto profondi dove i nodi alti
in alto nell'albero possono essere differenziati solo dai nodi più in basso nell'albero.
Entrambi gli alberi vengono caricati nella memoria per cominciare, quindi potrebbe avere problemi con dimensioni molto grandi
documenti
AUTORE
Chris Mungall cjm at fruitfly dot org
Utilizzare stag-diffp online utilizzando i servizi onworks.net