anchor.diff:        .then((String commitMessage) {
   
           return gitDir.populateBranch(targetBranch,
  -            (TempDir td) => _doDocsPopulate(ctx, td, libs, packageDir),
  +            (TempDir td) => _doDocsPopulate(ctx, td, libs, packageDir, excludeList, linkApi),
               commitMessage);
         })
         .then((Commit value) {
  
positive.code:         }
  
          return true;
        });
  }
  
  Future _doDocsPopulate(TaskContext ctx, TempDir dir, Collection<String> libs, String packageDir) {
    return _dartDoc(ctx, dir, libs, packageDir)
        .then((bool dartDocSuccess) {
          if(!dartDocSuccess) {
            ctx.fail('The dartdoc process failed.');
          }
  
          // yeah, silly. ctx.fail should blow up. Should not get heer
          assert(dartDocSuccess);
        });
  }
  
  
negative.code:     });
  }
  
  Future _doDocsPopulate(TaskContext ctx, TempDir dir, Collection<String> libs,
                         String packageDir, List<String> excludeList, bool linkApi) {
    final args = ['--pkg', packageDir, '--omit-generation-time', '--out', dir.path, '--verbose'];
  
    if(linkApi) {
      args.add('--link-api');
    }
  
    if(!excludeList.isEmpty) {
      args.add('--exclude-lib');
      args.add(excludeList.join(','));
    }
  
    args.addAll(libs);
    ctx.fine("Generating docs into: $dir");
  
    final sublogger = ctx.getSubLogger('dartdoc');
  
    return startProcess(sublogger, "dartdoc", args)
        .then((bool dartDocSuccess) {
          if(!dartDocSuccess) {
            ctx.fail('The dartdoc process failed.');
          }
  
          // yeah, silly. ctx.fail should blow up. Should not get heer
          assert(dartDocSuccess);
        });
  }
  