これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド stag-diffp です。
プログラム:
NAME
stag-diff - XNUMX つの stag ファイルの違いを見つけます
SYNOPSIS
stag-diff -foo-id を無視 -bar-id を無視 file1.xml file2.xml
DESCRIPTION
XNUMX つのデータ ツリーを比較し、一致するかどうかを報告します。 一致しない場合、不一致
報告されています。
議論
-ヘルプ|h
この文書を示します
-ignore|i 要素
これらのノードは、比較のために無視されます。 属性は
要素として扱われ、それを含む要素 ID が接頭辞として付けられます。 たとえば、
ID 属性を無視したい場合は、スイッチを使用します。
-foo-ID を無視する
このように無視する複数の要素を指定できます
-i foo -i bar -i baz
パスを指定することもできます
-i foo/bar/bar-id
-parser|p フォーマット
使用するパーサー。 デフォルトは XML です。 これは、ファイルによって自動検出することもできます
サフィックス。 他の選択肢は SXPR テキスト. 詳細については、Data::Stag を参照してください。
-report|r 要素
タイプ ELEMENT の各要素で発生した不一致を報告します
複数の要素を指定可能
-冗長|v
と組み合わせて使用 -報告する スイッチ
不一致要素のツリーを表示します
出力
不一致が報告されると、ツリーのサブパートを表示するレポートが生成されます。
一致できませんでした。 これは次のようになります。
REASON: no_matching_node: アノテーション
no_matching_node: 機能セット
no_matching_node: feature_span
no_matching_node: 証拠
no_matching_node: 証拠 ID
data_mismatch(:15077290 ne:15077291): 証拠 ID AND 証拠 ID
ツリー マッチングの性質上、ツリーがどのように動作するかを正確に指定することは困難な場合があります。
合わない。 これを調査するには、 -r -v オプション。 上記について
出力、使用することをお勧めします
stag-diff -r feature_span -v
アルゴリズム
両方のツリーが再帰的にトラバースされます...これがどのように機能するかについては、実際のコードを参照してください
要素の順序は重要ではありません。 例えば
1
2
マッチ
2
1
このアルゴリズムの再帰的な性質は、特定のツリー比較が爆発することを意味します
時間とメモリを書き込みます。 これは、ノードが高い非常に深いツリーでのみ発生すると思います
ツリーの上位ノードは、ツリーの下位ノードによってのみ区別できます。
どちらのツリーも最初からメモリにロードされているため、非常に大きなサイズでスラッシュする可能性があります
ドキュメント
著者
Chris Mungall CJM at Fruitfly dot org
onworks.net サービスを使用してオンラインで stag-diffp を使用する