4

JGit を使用して Git リポジトリからグラフを描画する必要があります。

コミットをトラバースするさまざまな方法について考えてきました。ブランチ/コミットからグラフ/グラフを描画できるようにする必要があります。また、200 番目のコミットから 250 番目のコミットまでのように、任意の範囲内でそれを実行できる必要があります (最近作成された 200 のコミットをスキップします)。 .

リポジトリをトラバースするにはどうすればよいですか? を使用していRevWalkますか?十分なパフォーマンスを維持したいのですが、これをうまく行うための明確な方法があるかどうか疑問に思っていました.

更新:基本的にgit log --graph -n 50 --skip 200、作成順に 200 ~ 250 件のコミットの間のリポジトリのグラフを表示するようなものを作成することを検討しています。今、私はこれを自分でやりたいだけです。:)

更新 2:ぶら下がっている (参照がない) ものも繰り返し処理し、それらを灰色で描画できればいいと思います。

4

2 に答える 2

2

はい、同意します。RevWalk を使用する必要があります。JGit は、ログ呼び出しに似た磁器の API を提供しますが、下位層に興味深いエントリ ポイントを提供します。

おそらく、porcelain API や Git ベースのアプローチを使用するよりもはるかに効率的です。

参照されていないコミットの意味がよくわかりません。ブランチにないものは?

もう 1 つのことは、一度にすべてのコミットを照会できるかどうかわからないことです。つまり、各ブランチを照会する必要がありますが、すでに考えていると思います。私はいつも、各ブランチをクエリするよりも速い方法があるかどうか疑問に思っていました (それらが短く、巨大な共通の歴史がある場合、それは大きな時間の損失です)

于 2012-09-12T14:47:19.757 に答える