       @scheduleUpdate()
       # Watch the directory because index is recreated on every change.
       # Otherwise we loose the watch after the first change.
-      fs.watch join(@repository.path), (__, name)=> @scheduleUpdate() if name is 'index'
+      @indexWatch = fs.watch @repository.path, (__, name)=>
+        # atom/git-utils Repository does not always detect index changes
+        # ... let others know (e.g. tree-view)
+        @repository?.refreshStatus()
+        @scheduleUpdate() if name is 'index'
 
   cancelUpdate: ->
     clearTimeout(@timeoutId)

    @subscriptions = new CompositeDisposable()
    @decorations = {}
    @markers = []
    @timeoutId = @repository = @editor = null

  dispose: =>
    @cancelUpdate()
    @removeDecorations()
    @subscriptions?.dispose()
    @reset()


fs = require 'fs'
{Directory, CompositeDisposable} = require 'atom'
{repositoryForPath} = require './helpers'

