anchor.diff:      String email = options.email;
       String commitMsg = options.commitMessage;
   
  -    Completer completer = new Completer();
  -
  -    walkFiles(dir, store).then((String sha) {
  -      checkTreeChanged(store, parent, sha).then((_) {
  +    return walkFiles(dir, store).then((String sha) {
  +      return checkTreeChanged(store, parent, sha).then((_) {
           DateTime now = new DateTime.now();
           String dateString = (now.millisecond / 1000).floor().toString();
           int offset = (now.timeZoneOffset.inMilliseconds / -60).floor();
  
positive.code:           return null;
          }
        }, onError: (e) {
          //TODO throw error object_store_corrupted.
          throw "object_store_corrupted";
        });
      }
  
negative.code:         commitParts.add('\n\n${commitMsg}\n');
  
          StringBuffer commitContent = new StringBuffer(commitParts);
          return store.writeRawObject('commit', commitContent.toString()).then(
              (String commitSha) {
            return FileOps.createFileWithContent(dir, '.git/${refName}',
                commitSha + '\n', 'Text').then((_) {
                  return store.updateLastChange(null).then((_) => commitSha);
            });
          });
        });
      });
    }
  }
  