        Generate a patch from the current or specified topic branch.
        This means that the diff between the topic branch base and head
        (latest commit) is shown, appended to the description found in
        the `.topmsg` file.

        The patch is simply dumped to stdout.  In the future, `tg patch`
        will be able to automatically send the patches by mail or save
        them to files. (TODO)

        Options:
          -i            base patch generation on index instead of branch
          -w            base patch generation on working tree instead of branch
          --binary      pass --binary to `git diff-tree` to enable generation
                        of binary patches
          --quiet       be quiet (aka `-q`) about missing and unfixed From:
          --from        make sure patch has a From: line, if not add one
          --from=<a>    <a> or Signed-off-by value or ident value; `git am`
                        really gets unhappy with patches missing From: lines;
                        will NOT replace an existing non-empty From: header
          --no-from     leave all From: lines alone, missing or not (default)
          --diff-opt    options after the branch name (and an optional `--`)
                        are passed directly to `git diff-tree`

        In order to pass a sole explicit `-w` through to `git diff-tree` it
        must be separated from the `tg` options by an explicit `--`.
        Or it can be spelled as `--ignore-all-space` to distinguuish it from
        `tg`'s `-w` option.

        If the config variable `topgit.from` is set to a boolean it can be
        used to enable or disable the `--from` option by default.  If it's
        set to the special value `quiet` the `--quiet` option is enabled
        and From: lines are left alone by default.  Any other non-empty value
        is taken as a default `--from=<value>` option.  The `--no-from`
        option will temporarily disable use of the config value.

        If additional non-`tg` options are passed through to
        `git diff-tree` (other than `--binary` which is fully supported)
        the resulting `tg patch` output may not be appliable.

