anchor.diff:    String packageDir: 'packages/',
     Iterable<String> excludeLibs,
     bool linkApi: false}) {
  +  requireArgumentNotNull(targetBranch, 'targetBranch');
  +  requireArgumentNotNull(packageDir, 'packageDir');
  +
     return new Task.async((ctx) {
  +    targetBranch = ctx.arguments[_targetBranchArg];
  +
       return _compileDocs(ctx, targetBranch, delayedLibraryList, packageDir,
           excludeLibs, linkApi);
     },
     description: 'Generate documentation for the provided libraries.',
  -  config: _dartDocParserConfig);
  +  config: (parser) => _dartDocParserConfig(parser, targetBranch));
   }
   
   /**
  
positive.code:       });
  }
  
  void _dartDocParserConfig(ArgParser parser) {
    parser.addFlag(_allowDirtyArg, abbr: 'd', help: 'Allow a dirty tree to run', defaultsTo: false);
  }
  
  Future<String> _getCommitMessageFuture(GitDir gitDir, bool isClean) {
  
negative.code: // TODO: add post-build options to pretty-up the docs
  
  const _allowDirtyArg = 'allow-dirty';
  const _targetBranchArg = 'target-branch';
  
  /**
   * [targetBranch] the Git branch that will contain the generated docs. If the
  