anchor.diff:    }
   }
   
  -class _GitPushJob extends Job {
  +class _GitPushTask {
     GitScmProjectOperations gitOperations;
     Spark spark;
     String username;
     String password;
  -
  -  _GitPushJob(this.gitOperations, this.username, this.password, this.spark)
  -      : super("Pushing changes…") {
  -  }
  -
  -  Future run(ProgressMonitor monitor) {
  -    monitor.start(name, 1);
  -
  -    return gitOperations.push(username, password).then((_) {
  -      spark.showSuccessMessage('Changes pushed successfully');
  -    }).catchError((e) {
  -      spark.showErrorMessage('Error while pushing changes', e.toString());
  -    });
  +  ProgressMonitor monitor;
  +
  +  _GitPushTask(this.gitOperations, this.username, this.password, this.spark,
  +      this.monitor){
  +  }
  +
  +  Future run() {
  +    return gitOperations.push(username, password);
     }
   }
   
  
positive.code:   }
  
    void _push() {
      _GitPushJob job = new _GitPushJob(gitOperations, _gitUsername, _gitPassword, spark);
      spark.jobManager.schedule(job);
    }
  
    void _commit() {
  
negative.code:     _commitsList = getElement('#gitCommitList');
    }
  
    void _onClose() => _hide();
  
    void _invoke([context]) {
      getElement(".modal-footer spark-button").onClick.listen((_) => _onClose());
      _triggerOnReturn("#gitPush", false);
      project = context.first;
  
      gitOperations = spark.scmManager.getScmOperationsFor(project);
  