#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)
.