anchor.diff:        if (doPush) await _git.push();
       });
     }
  -
  -  // TODO: return to this approach once the concurrency support is implemented
  -  // to handle it
  -//  @override
  -//  CompositeProjectCommand completeFeature(String featureName,
  -//                                          {bool doPush: false, bool recursive: true}) {
  -//    return projectCommandGroup('close off feature $featureName', [
  -//      _gitFeature.featureFinish(featureName),
  -//      _pubSpec.setToGitDependencies(),
  -//      _git.commit('set git dependencies for end of feature $featureName'),
  -//      new OptionalPush(doPush, _git.push()),
  -//      _pub.get()
  -//    ]);
  -//  }
   
     @override
     Future completeFeature(String featureName,
  
positive.code:       }
      }
    }
  
  //  Future<bool> _hasCommitsSince(GitDir gitDir, Version sinceVersion) async {
  //    return (await commitCountSince(gitDir, sinceVersion.toString())) > 0;
  //  }
  
  }
  
  class ProjectVersions {
  
negative.code: 
    ProjectVersions(this.currentVersions, this.newReleaseVersion);
  }
  