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:     chrome.DirectoryEntry dir = options.root;
      ObjectStore store = options.store;
  
      Completer completer = new Completer();
  
      store.getHeadRef().then((String headRefName) {
        store.getHeadForRef(headRefName).then((String parent) {
          _createCommitFromWorkingTree(options, parent, headRefName).then(
              (String str) {
                completer.complete(str);
              }, onError: (e) => throw e);
        }, onError: (e) {
          _createCommitFromWorkingTree(options, null, headRefName).then(
              (String str) => completer.complete(str), onError: (e) => throw e);
        });
      });
  
      return completer.future;
    }
  
    static Future _createCommitFromWorkingTree(GitOptions options, String parent,
  
negative.code:           return null;
          }
        }, onError: (e) {
          // TODO throw error object_store_corrupted.
          throw "object_store_corrupted";
        });
      }
  