anchor.diff:    bool appliesTo(context) => _isScmProject(context);
   }
   
  +class GitAddAction extends SparkAction implements ContextAction {
  +  GitAddAction(Spark spark) : super(spark, "git-add", "Add file to git");
  +  chrome.Entry entry;
  +
  +  void _invoke([List<ws.Resource> resources]) {
  +    ScmProjectOperations operations =
  +        spark.scmManager.getScmOperationsFor(resources.first.project);
  +    List<chrome.Entry> files = [];
  +    resources.forEach((resource) {
  +      files.add(resource.entry);
  +    });
  +    spark.jobManager.schedule(new _GitAddJob(operations, files, spark));
  +  }
  +
  +  String get category => 'git';
  +
  +  bool appliesTo(Object object) => _isFileList(object);
  +}
  +
   class GitBranchAction extends SparkActionWithDialog implements ContextAction {
     ws.Project project;
     GitScmProjectOperations gitOperations;
  
positive.code:       spark.showSuccessMessage('Pull successful');
      }).catchError((e) {
        spark.showErrorMessage('Git Pull Status', e.toString());
      });
    }
  }
  
negative.code:     }
      actionManager.registerAction(new GitResolveConflictsAction(this));
      actionManager.registerAction(new GitCommitAction(this, getDialogElement("#gitCommitDialog")));
      actionManager.registerAction(new GitAddAction(this));
      actionManager.registerAction(new GitRevertChangesAction(this));
      actionManager.registerAction(new GitPushAction(this, getDialogElement("#gitPushDialog")));
      actionManager.registerAction(new RunTestsAction(this));
  