=head1 NAME

lei-rediff - regenerate a diff with different options

=head1 SYNOPSIS

lei rediff [OPTIONS] LOCATION [LOCATION...]

lei rediff [OPTIONS] (--stdin|-)

=head1 DESCRIPTION

Read a message from C<LOCATION> or stdin and regenerate its diff with
the specified L<git-diff(1)> options.  This is useful if you want to
change the display of the original patch (e.g., increasing context,
coloring moved lines differently, or using an external diff viewer).

It relies on the contents of the .git directory of your current
project working tree.  In other words, it works anywhere
L<git-am(1)> works.  Otherwise, C<--git-dir=> may be specified
any number of times to add repositories to build blob data from.

=head1 OPTIONS

In addition to many L<git-diff(1)> options (e.g. C<-W>, C<-w>,
C<-U $LINES>) the following options are supported:

=over

=item --stdin

Read message from stdin.  This is implicit if no arguments are given
and stdin is a pipe or regular file.

For users of text editors and pagers capable of piping its
buffer to arbitrary commands, it is useful to pipe a patch email
to C<lei rediff> before piping it to L<git-am(1)>.  The output
of C<lei rediff> is compatible with C<git am> if its input was a
patch email.

=item --drq[=COUNT]

De-Re-Quote.  De-quotes the input and re-quotes (the output).
Removes COUNT levels of C<E<gt> > email reply prefixes and
re-adds them upon regenerating the diff.

This switch is intended as a convenience for running inside a
pipe-capable text editor when writing replies to a patch email.
Note: this may over-add C<E<gt> > prefixes if some input lines
are missing C<E<gt> > prefixes.

COUNT is 1 if unspecified; in other words, C<--drq=1> and
C<--drq> are equivalent.

It implies L</--quiet> unless L</--verbose> is specified
since text editors tend to combine stderr with stdout.

=item --dequote-only[=COUNT]

Like L</--drq>, but does not re-add quote prefixes to the output.

This can be useful for feeding a hunk to L<git-apply(1)>
or L<patch(1)> while writing a reply or further processing
by another diff viewer.

Unlike L</--drq>, it does NOT imply L</--quiet>.

=item --git-dir=DIR

Specify an additional .git/ directory to scan.  This option may be
given multiple times.

Default: the output of C<git rev-parse --git-dir>

=item --no-cwd

Do not look in the git repository of the current working directory.

=item -q

=item --quiet

Suppress progress output.

=item -v

=item --verbose

Provide more feedback on stderr.

=back

The options below, described in L<lei-q(1)>, are also supported.

=over

=item --[no-]remote

=item --no-local

=item --no-external

=item --no-import-remote

=item --torsocks=auto|no|yes, --no-torsocks

=item --proxy=PROTOCOL://HOST[:PORT]

=back

=head1 CONTACT

Feedback welcome via plain-text mail to L<mailto:meta@public-inbox.org>

The mail archives are hosted at L<https://public-inbox.org/meta/>
and L<http://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/meta/>

=head1 COPYRIGHT

Copyright 2021 all contributors L<mailto:meta@public-inbox.org>

License: AGPL-3.0+ L<https://www.gnu.org/licenses/agpl-3.0.txt>

=head1 SEE ALSO

L<lei-q(1)>, L<lei-blob(1)>, L<lei-p2q(1)>
