aptana/studio3 — pull request #209 by sgtcoolguy (2014-06-04 14:44:52+00:00)
Title: TISTUD-6376 Appcelerator Studio 3.3.0.201405211748 (RC) is very slow to work

Refactor the ChangedFile class and how we perform GitIndex refreshes
- Make ChangedFile hold an IPath, not two Strings to represent portable/OS versions of path. Use IPath in API, not String.
- try to encapsulate most changes to ChangedFile. It's intended to be a value object pattern, so when we want a modified version we clone or merge into new instances - try to keep immutable as much as possible.
- When we do refreshes, don't use a shared list across the three jobs/callables that gather the staged/unstaged/other files. Instead have each build it's own mapping from IPath to ChangedFile, then if we have multiple entries for the same path, merge the ChangedFile instances. This should avoid synchronization issues - and hopefully should be faster.