您可以通过以下方法通过 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