Есть ли в любом случае возможность получать уведомления, когда ссылка обновляется в JGit?

#jgit

Вопрос:

Есть ли какой-либо способ получить уведомление, когда я добавляю/обновляю/удаляю ссылку в репозитории bare git? Может быть, через слушателя или любым другим способом в JGit. Я вижу org.eclipse.jgit.events.RefsChangedListener и org.eclipse.jgit.events.RefsChangedEvent . Тем не менее, RefsChangedEvent похоже, что это не дает полезной информации, например, о том, на какую ссылку повлияло изменение и какого типа было изменение ссылки.

В принципе, мне нужно выполнить некоторую операцию после обновления конкретной ссылки.

Любые подсказки будут полезны.

Комментарии:

1. АФАИК, RefsChangedEvent это правильное событие для прослушивания. Вы можете использовать repository.getRefDatabase().getRefs() , чтобы получить снимок всех ссылок, а затем сравнить результат с текущим снимком, когда произойдет это событие.

2. Я вижу странное поведение С. org.eclipse.jgit.events.RefsChangedListener#onRefsChanged Он не вызывается немедленно при изменении ссылки. Скорее всего, он будет вызван в следующий раз, когда я попытаюсь получить доступ к измененной ссылке org.eclipse.jgit.lib.RefDatabase#exactRef(java.lang.String) .