Julien ÉLIE <julien@trigofacile.com> writes:
[jc: redirecting to those who touched "blame-ignore" topic in the past]
Show 64 quoted lines
> Hi all,
>
> I'm facing an issue with the use of "git blame" which shows commits marked to be ignored.
>
> We have a .git-blame-ignore-revs file that can be retrievable at <https://github.com/InterNetNews/inn/blob/main/.git-blame-ignore-revs>.
>
> The Git command line I'm using is:
> git blame --ignore-revs-file .git-blame-ignore-revs radius.c
>
> Here is an extract where commit 36944f2b16 appears at line 59, though it should be ignored (present in .git-blame-ignore-revs):
>
> 8e3e288fec (Marc G. Fournier 1998-12-29 13:19:05 +0000 50) int radport;
> 8e3e288fec (Marc G. Fournier 1998-12-29 13:19:05 +0000 51) char *lochost;
> a9d899ddbe (Russ Allbery 1999-11-29 01:40:47 +0000 52) int locport;
> 8e3e288fec (Marc G. Fournier 1998-12-29 13:19:05 +0000 53)
> 8e3e288fec (Marc G. Fournier 1998-12-29 13:19:05 +0000 54) char *prefix, *suffix; /* futz with the username, if necessary */
> 9f21a39f37 (Katsuhiro Kondou 1999-06-12 09:33:48 +0000 55) int ignore_source;
> d65e228465 (Jeffrey M. Vinocur 2002-03-14 07:27:00 +0000 56)
> d65e228465 (Jeffrey M. Vinocur 2002-03-14 07:27:00 +0000 57) struct _rad_config_t *next; /* point to any additional servers */
> 8e3e288fec (Marc G. Fournier 1998-12-29 13:19:05 +0000 58) } rad_config_t;
> 36944f2b16 (Julien ÉLIE 2021-10-31 10:04:59 +0100 59)
> d65e228465 (Jeffrey M. Vinocur 2002-03-14 07:27:00 +0000 60) typedef struct _sending_t {
> d65e228465 (Jeffrey M. Vinocur 2002-03-14 07:27:00 +0000 61) auth_req req;
> d65e228465 (Jeffrey M. Vinocur 2002-03-14 07:27:00 +0000 62) int reqlen;
>
>
> When running git blame without ignoring revisions, commit 36944f2b16 appears at lines 54, 57 and 59:
>
> 8e3e288fec (Marc G. Fournier 1998-12-29 13:19:05 +0000 50) int radport;
> 8e3e288fec (Marc G. Fournier 1998-12-29 13:19:05 +0000 51) char *lochost;
> a9d899ddbe (Russ Allbery 1999-11-29 01:40:47 +0000 52) int locport;
> 8e3e288fec (Marc G. Fournier 1998-12-29 13:19:05 +0000 53)
> 36944f2b16 (Julien ÉLIE 2021-10-31 10:04:59 +0100 54) char *prefix, *suffix; /* futz with the username, if necessary */
> 9f21a39f37 (Katsuhiro Kondou 1999-06-12 09:33:48 +0000 55) int ignore_source;
> d65e228465 (Jeffrey M. Vinocur 2002-03-14 07:27:00 +0000 56)
> 36944f2b16 (Julien ÉLIE 2021-10-31 10:04:59 +0100 57) struct _rad_config_t *next; /* point to any additional servers */
> 8e3e288fec (Marc G. Fournier 1998-12-29 13:19:05 +0000 58) } rad_config_t;
> 36944f2b16 (Julien ÉLIE 2021-10-31 10:04:59 +0100 59)
> d65e228465 (Jeffrey M. Vinocur 2002-03-14 07:27:00 +0000 60) typedef struct _sending_t {
> d65e228465 (Jeffrey M. Vinocur 2002-03-14 07:27:00 +0000 61) auth_req req;
> d65e228465 (Jeffrey M. Vinocur 2002-03-14 07:27:00 +0000 62) int reqlen;
>
>
> Shouldn't 36944f2b16 have disappeared from the output at line 59?
>
> It should have been d65e228465 which already had that line, as it can be seen in the commit (line 53 at that time):
> https://github.com/InterNetNews/inn/blob/d65e228465700ff044b75aecacb7062d2a1250f9/authprogs/radius.c
>
>
> The result of that command is the same as the one GitHub shows; you can therefore find the whole ouput here:
>
> https://github.com/InterNetNews/inn/blame/main/authprogs/radius.c
>
> Commit 36944f2b16 is mentioned at lines 59, 129, 144, 293, etc. though present in .git-blame-ignore-revs.
> Yet, that very commit is correctly ignored at other places of the same file.
>
> Other files and other commits in the project are also affected. I can give more examples if needed.
>
>
> Is it the expected behaviour of "git blame"?
> Is there a reason for these commits to appear in some portions of the blame output?
>
>
> Thanks beforehand,