anchor.diff:  
     void printUsage() {
       log.message(usage);
  +  }
  +
  +  /// Print a warning if we're running from the Dart SDK repo and pub isn't
  +  /// up-to-date.
  +  ///
  +  /// This is otherwise hard to tell, and can produce confusing behavior issues.
  +  void _checkDepsSynced() {
  +    if (!runningFromDartRepo) return;
  +
  +    var deps = readTextFile(p.join(dartRepoRoot, 'DEPS'));
  +    var pubRevRegExp = new RegExp(
  +        r'^ +"pub_rev": +"@([^"]+)"', multiLine: true);
  +    var match = pubRevRegExp.firstMatch(deps);
  +    if (match == null) return;
  +    var depsRev = match[1];
  +
  +    var actualRev = git.runSync(["rev-parse", "HEAD"], workingDir: pubRoot)
  +        .single;
  +
  +    if (depsRev == actualRev) return;
  +    log.warning(
  +        "${log.yellow('Warning:')} the revision of pub in DEPS is "
  +            "${log.bold(depsRev)},\n"
  +        "but ${log.bold(actualRev)} is checked out in "
  +            "${p.relative(pubRoot)}.\n\n");
     }
   
     /// Returns the appropriate exit code for [exception], falling back on 1 if no
  
positive.code:   Future runCommand(ArgResults options) async {
      log.withPrejudice = options['with-prejudice'];
  
      if (options['version']) {
        log.message('Pub ${sdk.version}');
        return;
  
negative.code: import 'package:args/args.dart';
  import 'package:args/command_runner.dart';
  import 'package:http/http.dart' as http;
  import 'package:path/path.dart' as p;
  
  import 'command/build.dart';
  import 'command/cache.dart';
  