anchor.diff:  
     Future<GitSalt> get gitSalt => _completer.future;
   
  -  GitSaltScmProjectOperations(ScmProvider provider, Project project) :
  +  GitSaltScmProjectOperations(ScmProvider provider, Project project,
  +      [chrome.DirectoryEntry dir]) :
       super(provider, project) {
         _completer = new Completer();
  -      _gitSalt = GitSaltFactory.getInstance(project.entry.fullPath);
  +
  +      chrome.Entry entry = (dir == null) ? project.entry : dir;
  +      _gitSalt = GitSaltFactory.getInstance(entry.fullPath);
         _gitSalt.loadPlugin().then((_) {
  -        _gitSalt.load(project.entry).then((_) {
  +        _gitSalt.load(entry).then((_) {
             _completer.complete(_gitSalt);
           });
         });
  
positive.code:     return null;
    }
  
    Future clone(String url, chrome.DirectoryEntry dir,
        {String username, String password, String branchName}) {
      GitSalt gitSalt = GitSaltFactory.getInstance(dir.fullPath);
      return gitSalt.loadPlugin().then((_) {
        return gitSalt.clone(dir, url);
      });
    }
  
  
negative.code:     });
    }
  
    Future init(chrome.DirectoryEntry dir) {
      //TODO(grv): to be implemented.
      return new Future.value()
    }
  
    void cancelClone() {
      if (_activeClone != null) {
        _activeClone.cancel();
  