final Map<AbstractVcs, List<T>> changesByVcs = new HashMap<AbstractVcs, List<T>>();
ApplicationManager.getApplication().runReadAction(new Runnable() {
public void run() {
for (T item : items) {
final AbstractVcs vcs = separator.getVcsFor(item);
if (vcs != null) {
List<T> vcsChanges = changesByVcs.get(vcs);
if (vcsChanges == null) {
vcsChanges = new ArrayList<T>();
changesByVcs.put(vcs, vcsChanges);