anchor.diff:      String url = config.url != null ? config.url : options.repoUrl;
   
       if (url == null) {
  -      throw new GitException(GitErrorConstants.GIT_PUSH_NO_REMOTE);
  +      return new Future.error(
  +        new GitException(GitErrorConstants.GIT_PUSH_NO_REMOTE));
       }
   
       // Currently only pushing to 'origin' is supported.
  
positive.code:     String url = config.url != null ? config.url : options.repoUrl;
  
      if (url == null) {
         throw new GitException(GitErrorConstants.GIT_PUSH_NO_REMOTE);
      }
  
     HttpFetcher fetcher = new HttpFetcher(store, 'origin', url, username, password);
  
negative.code:       return store.getCommitsForPush(refs, config.remoteHeads).then(
            (CommitPushEntry pushEntry) {
          if (pushEntry == null) {
            return new Future.error(
              new GitException(GitErrorConstants.GIT_PUSH_NO_COMMITS));
          }
          PackBuilder builder = new PackBuilder(pushEntry.commits, store);
          return builder.build().then((List<int> packData) {
  