anchor.diff:  
          return Future.forEach(entries, (chrome.Entry entry) {
            if (entry.name == '.git') {
  -           return new Future.value();
  +           return filePaths;
            }
   
            if (entry.isDirectory) {
  -           return walkFilesAndUpdateIndex(entry as chrome.DirectoryEntry).then((String sha) {
  -             return new Future.value();
  +           return walkFilesAndUpdateIndex(entry as chrome.DirectoryEntry)
  +               .then((List<String> paths) {
  +             filePaths.addAll(paths);
  +             return filePaths;
              });
            } else {
              // don't update index for untracked files.
  
positive.code:    * Updates the git index. Status of deleted files are removed.
     * Status of untracked files are left as untracked.
     */
    void onCommit() {
      Map<String, FileStatus> statusIdx = {};
      _statusIdx.forEach((key, FileStatus status) {
        if (status.type != FileStatusType.UNTRACKED) {
          status.headSha = status.sha;
          status.type = FileStatusType.COMMITTED;
        }
        if (!status.deleted) {
          statusIdx[key] = status;
        }
      });
      _statusIdx = statusIdx;
      _scheduleWriteIndex();
    }
  
    FileStatus getStatusForEntry(chrome.Entry entry)
  
negative.code:    * and create a new entry.
     */
    void createIndexForEntry(FileStatus status) {
      deleteIndexForEntry(status.path);
      status.type = FileStatusType.COMMITTED;
      updateIndexForEntry(status);
    }
  