Remove call to obsolete ctor, replacement performs exactly the same operation
Pointless to embed EnvDTE interop types because a referenced assembly does not also embed them
Support repositories with relocated Git directories (e.g. submodules)
GitFileStatusTracker cache key matches the value returned by TreeWalk.PathString
Initialize GitFileStatusTracker cache (including up-to-date items) before updating the UI
Proper nested tracking of the NoRefresh flag
Distinguish between triggered/automatic refresh and a refresh explicitly requested by the user
Git tracks files, not directories - trigger refresh only on file change notification
Changes triggered by file system notifications defer the refresh (improves handling of a series of changes)
Remove unused fields
Refresh command doesn't need to do anything more than trigger a refresh since explicit refreshes are not delayed
Property getters were performing unnecessary work
Add QueuedTaskScheduler
Perform primary work for update of the pending changes view on a background thread
Make the refresh delay a field
Perform status updates on a background thread
Minor cleanup to comments and whitespace
Reduce priority of background update thread
Implement progressive backoff if background updates are slow (large projects, slow file system, etc.)
Reset refresh delay when a solution is opened (might open a tiny/fast solution after a large/slow solution is closed)