Patch Set 2:

I see, you need first to discuss what you want to offer as EGit API.

You are right, that it is untransparent to the user, if somebody can change the resources without the knowledge of a user. In the finalizeCommit phase, I am interacting with another system. By this interaction it is possible that some local files change and for my need I _must_ commit these changed files as well.

Maybe we can show the user in that case a second dialog, so that all files for commit are viewable to the user. If the user does not like the modified commit, than the commit process may be canceled.
But I need to interact on the selected resources, so putting this phase before showing the first dialog is not an option for me.

If you do not want to let the class “CommitOperation“ be accessible, than I need to add an additional “call-back” method to the CommitObserver. The CommitObserver should be notified if the commit was successful or not.

You proposed a data container class with the information needed for commit which could be manipulated by the Observer.
It would be great if a CommitObserver-Developer would not need to handle with “indexedFiles” and “untrackedFiles”, only with the files that should be committed. Meta-information should be handled as a black box (in the container or later).
Would you expect that I should write such a container? I could try to do this if wanted, but at the moment I am not so sure about the requirements for the container. Maybe we should discuss this before.

Cheers Adrian