次の方法で、すべてのリポジトリまたは個々のリポジトリの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