5

Subclipse API を使用して、Subclipse プラグインを介して発生する Subversion イベントをリッスンする Eclipse 用のプラグインを作成しています。私は基本的にリスナー インターフェースを実装しており、実行時にイベントの発生について通知を受けます。

私は似たようなことをしたいと思っていますが、Git 用です。別のプラグインを利用する場合は、EGit (JGit 上に構築されている) が最適なオプションになるようです。私は彼らのAPIの経験があまりありません。EGit、または基礎となる JGit に、Git イベント (コミット、プッシュ、プルなど) をリッスンするための同様の API インターフェースがあるかどうかを誰かが知っているかどうか疑問に思っています。

ありがとう!

4

2 に答える 2

6

次の方法で、すべてのリポジトリまたは個々のリポジトリのJGitを介してリスナーを登録できます。

すべてのリポジトリについて通知されたグローバルリスナー:

org.eclipse.jgit.lib.Repository.getGlobalListenerList().addIndexChangedListener
org.eclipse.jgit.lib.Repository.getGlobalListenerList().addConfigChangedListener
org.eclipse.jgit.lib.Repository.getGlobalListenerList().addRefsChangedListener

個々のリポジトリのリスナー:

org.eclipse.jgit.lib.Repository.getListenerList().addIndexChangedListener
org.eclipse.jgit.lib.Repository.getListenerList().addConfigChangedListener
org.eclipse.jgit.lib.Repository.getListenerList().addRefsChangedListener

これらのリスナーは、インデックスの変更、リポジトリ構成の変更、およびリポジトリの参照(ブランチ、タグなど)の変更のイベントをサポートします。

EGitに登録されているすべてのリポジトリは、次の方法で見つけることができます。

次のコマンドを呼び出して、EGitに存在するすべてのリポジトリへの絶対パスを取得します。

org.eclipse.egit.core.Activator.getDefault().getRepositoryUtil().getConfiguredRepositories()

前のメソッドから返されたパスのファイルを作成し、そのファイルを使用して以下を呼び出すことにより、特定のリポジトリオブジェクトへのハンドルを取得できます。

org.eclipse.egit.core.Activator.getDefault().getRepositoryCache().lookupRepository
于 2011-11-03T13:57:42.010 に答える
0

これまでのところ、利用可能なパブリック リスナーや拡張ポイントはありません。コミットダイアログにはいくつかの拡張ポイントがあり、他のダイアログにもあるかもしれませんが、これらはすべて非公開であり、将来変更される可能性があります。ただし、関心を追跡するには、EGit プロジェクトのEclipse Bugzillaで拡張要求を提出する必要があります(同様の機能に対する要求が既にいくつかあると思いますので、それらを検索して投票することができます)。

于 2011-10-28T11:44:39.560 に答える