threads / bug / 53112

Bug Report

Subject: Bug Report

## tl;dr

4 messages between Mar 27, 2020 and Mar 31, 2020.

replies: 3people: 2as markdown or json

James Yeoman· Mar 27, 2020, 11:53 UTC · lore
gitk and git-gui are both not respecting git config.

When I set the diff.algorithm global config to patience, the command line git respects the config. However, both gitk and git-gui don't. When I use "git status -vv" to get a diff of the working directory, the diff produced respects the algorithm choice. The diff of the working directory in gitk and git-gui both still use the default diff algorithm, rather than the algorithm from the config.

Pratyush Yadav· Mar 27, 2020, 12:59 UTC · re: James Yeoman · lore

Re: Bug Report

Hi James,
On 27/03/20 11:53AM, James Yeoman wrote:
Show 8 quoted lines
> gitk and git-gui are both not respecting git config.
> 
> When I set the diff.algorithm global config to patience, the command
> line git respects the config. However, both gitk and git-gui don't.
> When I use "git status -vv" to get a diff of the working directory,
> the diff produced respects the algorithm choice. The diff of the
> working directory in gitk and git-gui both still use the default diff
> algorithm, rather than the algorithm from the config.
 
Thanks for reporting. Can you please send steps to produce a simple 
scenario where the diff from two algorithms is different so I can test 
why git-gui is not respecting the config. Make them as minimal as 
possible.
Also, +Cc Paul, the gitk maintainer.
-- 
Regards,
Pratyush Yadav
James Yeoman· Mar 30, 2020, 08:18 UTC · lore

Fwd: Bug Report

Sorry, my message got rejected because Gmail added html to the message, and when I went to resend my response (making sure it was in plain text mode), I must have clicked the wrong reply button

---------- Forwarded message ---------
From: James Yeoman <james.yeoman@appsbroker.com>
Date: Fri, 27 Mar 2020 at 14:31
Subject: Re: Bug Report
To: Pratyush Yadav <me@yadavpratyush.com>
Hi, of course

=== File at commit 1 === import java.util.List;

public class Foo {
    private int id;
    private String name;
    private List<Programme> programmes;
    public Foo() {
    }
    public Foo(int id, String name, List<Programme> programmes) {
        this.id = id;
        this.name = name;
        this.programmes = programmes;
    }
    // getters and setters
}
=== File in working area ===
import java.util.List;
public class Foo {
    private int id;
    private String name;
    private List<Programme> programmes;
    public Foo() {
    }
    public Foo(int id, String name) {
        this.id = id;
        this.name = name;
    }
    public Foo(int id, String name, List<Programme> programmes) {
        this(id, name);
        this.programmes = programmes;
    }
    // getters and setters
}
=== diff with default ===
-    public Foo(int id, String name, List<Programme> programmes) {
+    public Foo(int id, String name) {
         this.id = id;
         this.name = name;
+    }
+
+    public Foo(int id, String name, List<Programme> programmes) {
+        this(id, name);
         this.programmes = programmes;
     }
=== diff with patience ===
    public Foo(int id, String name) {
+        this.id = id;
+        this.name = name;
+    }
+
     public Foo(int id, String name, List<Programme> programmes) {
-        this.id = id;
-        this.name = name;
+        this(id, name);
         this.programmes = programmes;
     }
On Fri, 27 Mar 2020 at 12:59, Pratyush Yadav <me@yadavpratyush.com> wrote:
Show 23 quoted lines
>
> Hi James,
>
> On 27/03/20 11:53AM, James Yeoman wrote:
> > gitk and git-gui are both not respecting git config.
> >
> > When I set the diff.algorithm global config to patience, the command
> > line git respects the config. However, both gitk and git-gui don't.
> > When I use "git status -vv" to get a diff of the working directory,
> > the diff produced respects the algorithm choice. The diff of the
> > working directory in gitk and git-gui both still use the default diff
> > algorithm, rather than the algorithm from the config.
>
> Thanks for reporting. Can you please send steps to produce a simple
> scenario where the diff from two algorithms is different so I can test
> why git-gui is not respecting the config. Make them as minimal as
> possible.
>
> Also, +Cc Paul, the gitk maintainer.
>
> --
> Regards,
> Pratyush Yadav
Pratyush Yadav· Mar 31, 2020, 07:26 UTC · re: James Yeoman · lore

Re: Fwd: Bug Report

Hi James,
On 30/03/20 09:18AM, James Yeoman wrote:
Show 60 quoted lines
> Hi, of course
> 
> === File at commit 1 ===
> import java.util.List;
> 
> public class Foo {
>     private int id;
>     private String name;
>     private List<Programme> programmes;
> 
>     public Foo() {
> 
>     }
> 
>     public Foo(int id, String name, List<Programme> programmes) {
>         this.id = id;
>         this.name = name;
>         this.programmes = programmes;
>     }
> 
>     // getters and setters
> }
> 
> === File in working area ===
> 
> import java.util.List;
> 
> public class Foo {
>     private int id;
>     private String name;
>     private List<Programme> programmes;
> 
>     public Foo() {
> 
>     }
> 
>     public Foo(int id, String name) {
>         this.id = id;
>         this.name = name;
>     }
> 
>     public Foo(int id, String name, List<Programme> programmes) {
>         this(id, name);
>         this.programmes = programmes;
>     }
> 
>     // getters and setters
> }
> 
> === diff with default ===
> -    public Foo(int id, String name, List<Programme> programmes) {
> +    public Foo(int id, String name) {
>          this.id = id;
>          this.name = name;
> +    }
> +
> +    public Foo(int id, String name, List<Programme> programmes) {
> +        this(id, name);
>          this.programmes = programmes;
>      }

I see this diff with both the default and patience algorithms on the command line tool.

I ran:
  $ git diff --diff-algorithm=default
and
  $ git diff --diff-algorithm=patience

Both yield the above diff. In fact, all 4 of "default", "patience", "minimal", and "histogram" yield the above diff. Which version of Git are you running? I am on v2.25.2.

PS: Please don't top post on the mailing list.
 
Show 38 quoted lines
> === diff with patience ===
>     public Foo(int id, String name) {
> +        this.id = id;
> +        this.name = name;
> +    }
> +
>      public Foo(int id, String name, List<Programme> programmes) {
> -        this.id = id;
> -        this.name = name;
> +        this(id, name);
>          this.programmes = programmes;
>      }
> 
> 
> On Fri, 27 Mar 2020 at 12:59, Pratyush Yadav <me@yadavpratyush.com> wrote:
> >
> > Hi James,
> >
> > On 27/03/20 11:53AM, James Yeoman wrote:
> > > gitk and git-gui are both not respecting git config.
> > >
> > > When I set the diff.algorithm global config to patience, the command
> > > line git respects the config. However, both gitk and git-gui don't.
> > > When I use "git status -vv" to get a diff of the working directory,
> > > the diff produced respects the algorithm choice. The diff of the
> > > working directory in gitk and git-gui both still use the default diff
> > > algorithm, rather than the algorithm from the config.
> >
> > Thanks for reporting. Can you please send steps to produce a simple
> > scenario where the diff from two algorithms is different so I can test
> > why git-gui is not respecting the config. Make them as minimal as
> > possible.
> >
> > Also, +Cc Paul, the gitk maintainer.
> >
> > --
> > Regards,
> > Pratyush Yadav
-- 
Regards,
Pratyush Yadav

← back to recent threads