anchor.diff:  void release(GrinderContext context) {
     // If repository is not original repository of Spark and the branch is not
     // master.
  -  if (!canReleaseFromHere()) {
  -    archiveWithRevision(context);
  +  if (!_canReleaseFromHere()) {
  +    _archiveWithRevision(context);
       return;
     }
   
  
positive.code:   Directory distDir = new Directory('dist');
    distDir.createSync();
  
    // Create a build/chrome-app/spark directory to prepare the content of the
    // Chrome App.
    copyDirectory(
        joinDir(Directory.current, ['build', 'polymer-build', 'web']),
        joinDir(Directory.current, ['build', 'chrome-app', 'spark']));
    _runCommandSync(
        context,
        'find build/chrome-app/spark -name "packages" -print0 | xargs -0 rm -rf');
    copyDirectory(
        joinDir(Directory.current, ['build', 'polymer-build', 'web', 'packages']),
        joinDir(Directory.current, ['build', 'chrome-app', 'spark', 'packages']));
    _runCommandSync(context, 'rm -rf build/chrome-app/spark/test');
    _runCommandSync(context, 'rm -rf build/chrome-app/spark/spark_test.dart');
  
    // zip spark.zip . -r -q -x .*
    _runCommandSync(context, 'zip ../../../dist/spark.zip . -qr -x .*',
        cwd: 'build/chrome-app/spark');
    _printSize(context, new File('dist/spark.zip'));
  }
  
  
negative.code: }
  
  void _polymerDeploy(GrinderContext context, Directory target) {
    _runCommandSync(context, 'rm -rf ${target.path}');
    target.createSync();
  
    // copy the app directory to target/web
    copyFile(new File('pubspec.yaml'), target);
    copyFile(new File('pubspec.lock'), target);
    copyDirectory(new Directory('app'), joinDir(target, ['web']));
    _runCommandSync(context, 'rm -rf ${target.path}/web/packages');
    _runCommandSync(context, 'ln -s packages ${target.path}');
  
    Directory saveDir = Directory.current;
    Directory.current = target;
  
    // TODO: allow runDartScript() to specify the cwd
    runDartScript(context, 'packages/polymer/deploy.dart',
                  packageRoot: 'packages');
  
    Directory.current = saveDir;
  }
  
  void _dart2jsCompile(GrinderContext context, Directory target, String filePath) {
    runSdkBinary(context, 'dart2js', arguments: [
       joinDir(target, [filePath]).path,
       '--out=' + joinDir(target, ['${filePath}.js']).path]);
  
    // clean up unnecessary (and large) files
    _runCommandSync(context, 'rm -f ${joinFile(target, ['${filePath}.js']).path}');
    _runCommandSync(context, 'rm -f ${joinFile(target, ['${filePath}.js.deps']).path}');
    _runCommandSync(context, 'rm -f ${joinFile(target, ['${filePath}.js.map']).path}');
  
    // de-symlink the directory
    _runCommandSync(context, 'rm -rf ${joinDir(target, ['packages']).path}');
    copyDirectory(
        joinDir(target, ['..', 'packages']),
        joinDir(target, ['packages']));
  
    _printSize(context,  joinFile(target, ['${filePath}.precompiled.js']));
  }
  
  // Prepare the build folder.
  