git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Stefan Beller <sbeller@google.com>
To: KES <kes-kes@yandex.ru>
Cc: git <git@vger.kernel.org>
Subject: Re: Feature request: Reduce amount of diff in patch
Date: Thu, 7 Dec 2017 12:13:47 -0800	[thread overview]
Message-ID: <CAGZ79kZt7hysp9Yzj8==nz9FAu3V4KduG9kH2KxhdEK5CTBiqA@mail.gmail.com> (raw)
In-Reply-To: <372261511885370@web21o.yandex.ru>

On Tue, Nov 28, 2017 at 8:09 AM, KES <kes-kes@yandex.ru> wrote:
> Hi.
>
> I get often patches which can be minimized:
>
> @@ -60,11 +64,8 @@ sub _get_filter {
>          address    =>  { -like => \[ '?',  "%$search%" ] },
>          company    =>  { -like => \[ '?',  "%$search%" ] },
>          country_code =>  { '=' => \[ 'UPPER(?)' => $search ] },
> -    ]);
>
> -    $users =  $users->search( $filter, {
> -        prefetch => { Packages => { Ips => { Subnet => { Server => 'Locality' }}}},
> -    });
> +    ]);
>
>
>      return $users;
>
> This patch can be minimized to:
>
> @@ -60,11 +64,8 @@ sub _get_filter {
>          address    =>  { -like => \[ '?',  "%$search%" ] },
>          company    =>  { -like => \[ '?',  "%$search%" ] },
>          country_code =>  { '=' => \[ 'UPPER(?)' => $search ] },
>      ]);
>
> -    $users =  $users->search( $filter, {
> -        prefetch => { Packages => { Ips => { Subnet => { Server => 'Locality' }}}},
> -    });
>
>
>      return $users;
>
> May you please fix the git to generate minimized patches?

You can use a different diff algorithm.

       --diff-algorithm={patience|minimal|histogram|myers}
           Choose a diff algorithm. The variants are as follows:

           default, myers
               The basic greedy diff algorithm. Currently, this is the
               default.

           minimal
               Spend extra time to make sure the smallest possible diff is
               produced.

           patience
               Use "patience diff" algorithm when generating patches.

           histogram
               This algorithm extends the patience algorithm to "support
               low-occurrence common elements".

           For instance, if you configured diff.algorithm variable to a
           non-default value and want to use the default one, then you have to
           use --diff-algorithm=default option.

Soon we'll have another diff algorithm "anchor" that tries to
keep a given line out of the +/- but rather move other lines around
the line to give equal results.

  parent reply	other threads:[~2017-12-07 20:13 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-28 16:09 Feature request: Reduce amount of diff in patch KES
2017-11-28 17:24 ` Kaartic Sivaraam
2017-12-07 20:13 ` Stefan Beller [this message]
2017-12-07 20:28   ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAGZ79kZt7hysp9Yzj8==nz9FAu3V4KduG9kH2KxhdEK5CTBiqA@mail.gmail.com' \
    --to=sbeller@google.com \
    --cc=git@vger.kernel.org \
    --cc=kes-kes@yandex.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).