anchor.diff:        'to the "dev" channel.');
       stdout.write('Are you? [yes/no] ');
       if (stdin.readLineSync() != 'yes') {
  -      runGit('tag -d v$version', 'remove the tag you did not want to publish');
  +      runGit('tag -d $version', 'remove the tag you did not want to publish');
         print('The dev roll has been aborted.');
         exit(0);
       }
     }
   
  -  runGit('push $origin v$version', 'publish the version');
  +  runGit('push $origin $version', 'publish the version');
     runGit('push $origin HEAD:dev', 'land the new version on the "dev" branch');
     print('Flutter version $version has been rolled to the "dev" channel!');
   }
   
   String getFullTag() {
     return getGitOutput(
  -    'describe --match v*.*.* --first-parent --long --tags',
  +    'describe --match *.*.*-dev.*.* --first-parent --long --tags',
       'obtain last released version number',
     );
   }
   
   Match parseFullTag(String version) {
  -  final RegExp versionPattern = RegExp(r'^v([0-9]+)\.([0-9]+)\.([0-9]+)-([0-9]+)-g([a-f0-9]+)$');
  +  final RegExp versionPattern = RegExp(r'^([0-9]+)\.([0-9]+)\.([0-9]+)-dev\.([0-9]+)\.([0-9]+)-([0-9]+)-g([a-f0-9]+)$');
     return versionPattern.matchAsPrefix(version);
  +}
  +
  +String getVersionFromParts(List<int> parts) {
  +  assert(parts.length == 5);
  +  final StringBuffer buf = StringBuffer()
  +    ..write(parts.take(3).join('.'))
  +    ..write('-dev.')
  +    ..write(parts.skip(3).join('.'));
  +  return buf.toString();
   }
   
   String getGitOutput(String command, String explanation) {
  
positive.code:       parts[0] += 1;
        parts[1] = 0;
        parts[2] = 0;
        break;
      case kY:
        parts[1] += 1;
        parts[2] = 0;
        break;
      case kZ:
        parts[2] += 1;
        break;
      default:
        print('Unknown increment level. The valid values are "$kX", "$kY", and "$kZ".');
        exit(1);
    }
    version = parts.join('.');
  
    if (justPrint) {
      print(version);
  
negative.code:     exit(1);
    }
  
    final List<int> parts = match.groups(<int>[1, 2, 3, 4, 5]).map<int>(int.parse).toList();
  
    if (match.group(6) == '0') {
      print('This commit has already been released, as version ${getVersionFromParts(parts)}.');
      exit(0);
    }
  
  