2

dot同じディレクトリにあるすべてのファイルがクラスターに集められているプロジェクトの依存関係グラフを(形式で)小さなツールダンプで作成しました。対応するグラフを含むPDFを生成しようとすると、dot泣き始めます。

このコマンドは、 Googleで結果を生成しないdot -Tpdf trimmedgraph.dot -o graph.pdf不可解なエラーメッセージを生成します。Error: install_in_rank clusterReals virtual rank 21 i = 0 an = 0

手動で編集しようとしましtrimmedgraph.dotた。サブグラフclusterRealsをに変換Realsすると、コンパイル可能なファイルが生成されますが、Reals/ディレクトリのすべてのコンテンツが明らかに収集されなくなりました。

ドット有効ファイルのみを生成する方法はありますか(最終的にパッチをアップストリームに送信する予定でしたが、すべてが正常であることを保証できない場合は...)?

私はtrimmedgraph.dotの2つのバージョンをオンラインで公開しましたが、それらはかなり大きく、問題がどこにあるのかわからないため、問題を再現する最小限のファイルを実際に思いつくことはできません。

4

1 に答える 1

3

クラスター名はドットファイル全体で一意である必要があると思います(ただし、これに関するドキュメントは見つかりませんでした) 。ただし、ファイルには、と呼ばれる2つのサブグラフがありますclusterReals

解決策は、すべてのクラスター名が一意であることを確認することです。名前は出力のどこにも表示されないため、ドットファイルを生成するときに数字を使用するだけで済みます。


簡単なテストでは、同じクラスター名を再利用すると奇妙なことが起こることが示されています。

digraph dependencies {
    subgraph cluster0 {
        label="First cluster 0";
        Node1;
        subgraph cluster0 {
            label="Second cluster 0";
            Node2;
        }
    }
    subgraph cluster0 {
        label="Third cluster 0";
        Node3;
    }
    subgraph cluster1 {
        label="Cluster 1";
        Node4;
        subgraph cluster0 {
            label="Fourth cluster 0";
            Node5;
        }
    }
}

graphviz出力

cluster0他のクラスターに含まれているために不可能でない限り、すべてがマージされているように見えます(ノード、ラベル)。少なくともそれはそのように見えます...結果は予測できないので(あなたの場合はエラー)、私は常に一意のクラスター名を使用しようとします。

于 2012-07-21T17:19:24.213 に答える