On Mon, Sep 12, 2016 at 12:36:26PM +0300, KES wrote:
> Does it be more meaning full which change was done when diff will be 
> displayed as:
> @@ -1278,6 +1311,16 @@ sub process {
>               if( ref $result eq 'HASH' ) {
>                       $code =  $result->{ code };
>                       @args =  DB::eval( $result->{ expr } );
>  
>                       redo PROCESS;
>               }
> +             elsif( ref $result eq 'ARRAY' ) {
> +                     $code =  shift @$result;
> +                     @args =  ();
> +                     for my $expr ( @$result ) {
> +                             push @args, [ DB::eval( $expr ) ];
> +                     }
> +
> +                     redo PROCESS;
> +             }
>  
> 
> instead of:
> 
> @@ -1278,6 +1311,16 @@ sub process {
>               if( ref $result eq 'HASH' ) {
>                       $code =  $result->{ code };
>                       @args =  DB::eval( $result->{ expr } );
> +
> +                     redo PROCESS;
> +             }
> +             elsif( ref $result eq 'ARRAY' ) {
> +                     $code =  shift @$result;
> +                     @args =  ();
> +                     for my $expr ( @$result ) {
> +                             push @args, [ DB::eval( $expr ) ];
> +                     }
> +
>                       redo PROCESS;
>               }
>  

Yes, it would definately be more meaningfull, but for an algorithm it's
not that clear cut. Michael Hagerty is currently working on a patch
series[1] to give git some heuristics to get better diffs, but is hard
to get right.

You can already enable this by adding --compaction-heuristic to the diff
command, but this can also give odd results in other cases, so it's not
enabled by default.

Kevin.


[1]:https://public-inbox.org/git/cover.1473068229.git.mhag...@alum.mit.edu/

Reply via email to