git_repo_tools

This is a repo-internal library for flutter/engine, that contains shared code for writing tools that want to interact with the git repository. For example, finding all changed files in the current branch:

import 'dart:io' as io show File, Platform;

import 'package:engine_repo_tools/engine_repo_tools.dart';
import 'package:git_repo_tools/git_repo_tools.dart';
import 'package:path/path.dart' as path;

void main() async {
  // Finds the root of the engine repository from the current script.
  final Engine engine = Engine.findWithin(path.dirname(path.fromUri(io.Platform.script)));
  final GitRepo gitRepo = GitRepo(engine.flutterDir);

  for (final io.File file in gitRepo.changedFiles) {
    print('Changed file: ${file.path}');
  }
}