2011-10-27 17 views
5

私は、Subclipse APIを使用して、Subclipseプラグインを通じて発生するSubversionイベントをリッスンするEclipseのプラグインを作成しています。私は基本的にリスナー・インターフェースを実装しています。リスナー・インターフェースは実行時にイベントの進行状況を通知されます。EGit/JGitプラグインを使用してGitイベントのリスナーを作成する方法は?

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

ありがとうございます!

答えて

0

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

5
あなたは、次のメソッドを介してすべてのリポジトリまたは個々のリポジトリのためJGitを通じてリスナーを登録することができ

:invidiualリポジトリ上の

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 

これらのリスナーは、索引の変更、リポジトリ構成の変更、およびrepos itoryのリファレンス(ブランチ、タグなど)。

次通過EGitに登録されているすべてのリポジトリを見つけることができます:あなたが特定のハンドルを取得することができ

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

呼び出すことにより、EGitに存在するすべてのリポジトリへの絶対パスを取得します。リポジトリオブジェクトは、前のメソッドから返されたパスのFileを作成し、そのFileで次を呼び出します。

org.eclipse.egit.core.Activator.getDefault().getRepositoryCache().lookupRepository 
関連する問題