def METHOD_NAME(
    changeset, include_files=None
) -> typing.Iterable[typing.Tuple[str, str]]:
    """
    Inspect `git diff` output to find moved/renamed files.
    Yields tuples in the form (old_file, new_file).
    If include_files is set, this only yields results where at least one of the
    two file names is in the list of file names to include.
    """
    logger = logging.getLogger(__name__)
    cmd = ["git", "diff", "--raw", "-z", changeset]
    logger.debug("Executing: %r", cmd)
    proc = subprocess.run(cmd, capture_output=True)
    proc.check_returncode()
    diff_output = proc.stdout.decode(errors="replace")
    for line in diff_output.lstrip(":").split(":"):
        change, _, files = line.partition("\0")
        _, _, changetype = change.rpartition(" ")
        if changetype.startswith("R"):
            # A file was renamed
            old_file, sep, new_file = files.rstrip("\0").partition("\0")
            assert sep == "\0"
            move = (old_file, new_file)
            if include_files and not any(x in include_files for x in move):
                continue
            yield move