В конце концов я обнаружил, что искал после многих часов поиска. К сожалению, так как у меня менее 100 представителей. Я не могу оставлять сообщения до сих пор ....
Я немного прогрессирую в этом. Я случайно наткнулся на это, проливая исходный код Eclipse.
Следующий фрагмент кода отслеживает все, что происходит в отношении проекта с поддержкой svn. Если вы сохраняете файл, обновляете, возвращаете и т. Д. Все, что касается файлов или метаданных файлов. Я просто распечатываю имя файла / директории и номер его ревизии.
Подрывная версия:
final Subscriber subscriber = UpdateSubscriber.instance();
subscriber.addListener(new ISubscriberChangeListener() {
@Override
public void subscriberResourceChanged(ISubscriberChangeEvent[] events) {
for(ISubscriberChangeEvent event : events) {
UpdateSyncInfo info = (UpdateSyncInfo) subscriber.getSyncInfo(event.getResource());
System.out.println(event.getResource().getName()+" revision: "+uInfo.getLocalResource().getRevision());
}
}
});
Настоящая хитрость заключалась в том, чтобы выяснить точку входа для получения этой информации: UpdateSubscriber. Было бы неплохо, если бы был хороший ресурс для выяснения такого рода информации.
Версия субклипса:
private static final Subscriber subscriber = SVNWorkspaceSubscriber.getInstance();
private static final ISubscriberChangeListener subsciberListener = new ISubscriberChangeListener() {
@Override
public void subscriberResourceChanged(ISubscriberChangeEvent[] events) {
try {
for (ISubscriberChangeEvent event : events) {
SVNStatusSyncInfo info = (SVNStatusSyncInfo) subscriber.getSyncInfo(event.getResource());
System.out.println(event.getResource().getName() + " revision: " + info.getRepositoryRevision());
}
} catch (TeamException e) {
}
}
};
@Override
public void start(BundleContext context) throws Exception {
super.start(context);
subscriber.addListener(subsciberListener);
}
@Override
public void stop(BundleContext context) throws Exception {
subscriber.removeListener(subsciberListener);
super.stop(context);
}