anchor.diff:    /**
      * Compute the paths to be returned by the enclosing method given that the
      * plugin should exist in the given [pluginFolder].
  +   *
  +   * Runs pub if [pubCommand] is provided and not null.
      */
     List<String> _computePaths(Folder pluginFolder,
  -      {bool runPub: false, Workspace workspace}) {
  +      {String pubCommand, Workspace workspace}) {
       File pluginFile = pluginFolder
           .getChildAssumingFolder('bin')
           .getChildAssumingFile('plugin.dart');
  
positive.code:     if (parentFolder.exists) {
        Folder executionFolder =
            parentFolder.getChildAssumingFolder(pluginFolder.shortName);
        return _computePaths(executionFolder);
      }
      Folder executionFolder = pluginFolder.copyTo(parentFolder);
      return _computePaths(executionFolder, runPub: true);
    }
  
    /**
  
negative.code:     }
      String reason;
      File packagesFile = pluginFolder.getChildAssumingFile('.packages');
      if (pubCommand != null) {
        String vmPath = Platform.executable;
        String pubPath = path.join(path.dirname(vmPath), 'pub');
        if (Platform.isWindows) {
          // Process.run requires the `.bat` suffix on Windows
          pubPath = '$pubPath.bat';
        }
        ProcessResult result = Process.runSync(pubPath, <String>[pubCommand],
            stderrEncoding: utf8,
            stdoutEncoding: utf8,
            workingDirectory: pluginFolder.path,
            environment: {_pubEnvironmentKey: _getPubEnvironmentValue()});
        if (result.exitCode != 0) {
          StringBuffer buffer = new StringBuffer();
          buffer.writeln('Failed to run pub $pubCommand');
          buffer.writeln('  pluginFolder = ${pluginFolder.path}');
          buffer.writeln('  exitCode = ${result.exitCode}');
          buffer.writeln('  stdout = ${result.stdout}');
  