Patch Set 3:

RCS working only if the IDE Windows is active: this is very useful.

On testing, I got some strange effects:

1. Create a new file x in the IDE and add it to Git.
If you change x outside Eclipse, the repo scan triggers an indexChanged event and x is refreshed

2. Change a file y that is in repo outside the IDE.
The repo scan does not get this change, no refresh is performed.

I think all external changes to resources should be refreshed or no change.

GitLighweightDecorator listens to repo changes. So when refresh stuff is turned of, still changes like staged, branch change etc are shown to the user. Just the dirty information is missing and external changes are not refreshed. Reacting to external changes is provided by setting "refresh automatically", so this should be used for any kind of external change (you mentioned "refresh automatically" has a too long delay until it works).

Summary: I have some doubts if it is the right way to refresh resources based on Git Repo eventing because not all external content changes in the working tree are detected.
Furthermore this EGit refresh mechanism somehow does the Job of a standard mechanism ("refresh automatically").