Here is another place where diff can be improved:
@@ -141,8 +140,9 @@ My_runops(pTHX)
// Do not trace variables in DB:: module
if( SvOK( inDB ) ) continue;
- sv_inc_nomg( inDB );
+ // save_item( inDB );
+ sv_inc_nomg( inDB );
dSP; SINFO; SAVETMPS;
// printf( "SWITCH\n" );
This would be better it the patch looks like:
( this patch is manually created just to light the idea. It may contain errors)
@@ -140,6 +140,7 @@ My_runops(pTHX)
// Do not trace variables in DB:: module
if( SvOK( inDB ) ) continue;
+
+ // save_item( inDB );
sv_inc_nomg( inDB );
-
dSP; SINFO; SAVETMPS;
As we can see, here the `sv_inc_nomg( inDB );` line is unchanged and `//
save_item( inDB );` is added.
Here we just add/remove empty lines and patch looks more better.
I think (and this is my assumption), the the diff algorithm should take into
account the string length.
This is more better to add/remove more short lines
21.11.2016, 20:55, "Jacob Keller" <[email protected]>:
> On Mon, Nov 21, 2016 at 10:17 AM, Stefan Beller <[email protected]> wrote:
>> On Mon, Nov 21, 2016 at 8:56 AM, Jacob Keller <[email protected]>
>> wrote:
>>> On Mon, Nov 21, 2016 at 12:11 AM, KES <[email protected]> wrote:
>>>> Hi.
>>>
>>> Hi,
>>>
>>>> I have some question about how diff works then give proposal:
>>>>
>>>> it will be very useful for each "symbol" store additional meta info as
>>>> source line length. So in this case when git counter two equal sequence of
>>>> commands it will do further comparison: Adds 23 chars deletes none VS adds
>>>> 75 chars deletes 46
>>>>
>>>> Actually I got this:
>>>>
>>>> @@ -129,8 +132,9 @@ sub _preprocess_message {
>>>> sub _process_message {
>>>> my ($self, $message) = @_;
>>>>
>>>> - my $method = ref($message) eq 'HASH' ? $message->{method} : undef;
>>>> + my $time = [ gettimeofday ];
>>>>
>>>> + my $method = ref($message) eq 'HASH' ? $message->{method} : undef;
>>>> return $self->send_error(ERROR_REQUEST_INVALID)
>>>> unless defined($method);
>>>>
>>>> Instead of expected:
>>>> @@ -129,6 +132,8 @@ sub _preprocess_message {
>>>> sub _process_message {
>>>> my ($self, $message) = @_;
>>>>
>>>> + my $time = [ gettimeofday ];
>>>> +
>>>> my $method = ref($message) eq 'HASH' ? $message->{method} : undef;
>>>> -
>>>> return $self->send_error(ERROR_REQUEST_INVALID)
>>>
>>> Have you tried the various options for git to search for smaller
>>> diffs? Or using the other diff algorithms such as histogram instead of
>>> patience?
>>
>> The newest version of Git comes with a flag to move around the diff
>> better, based on the work at https://github.com/mhagger/diff-slider-tools
>
> Unfortunately in this case, I'm not convinced that it will improve the
> diff. It's worth a try as well though.
>
> Thanks,
> Jake