threads / discuss / 51766

blame --ignore-rev - add place to specify defaults at repo level

Subject: blame --ignore-rev - add place to specify defaults at repo level

## tl;dr

2 messages between Aug 28, 2019 and Sep 16, 2019.

replies: 1people: 2as markdown or json

Terry Davis· Aug 28, 2019, 17:07 UTC · lore

The new blame options (--ignore-rev, --ignore-revs-file) and config options (blame.markIgnoredLines, blame.markUnblamables, blame.ignoreRevsFile) are great, and much appreciated. However, for my primary use (one-time automated reformatting of an entire repository), there is still some friction preventing adoption.

Adding a default location for the config options (much like .gitignore) specified above would have the following benefits:

   1. New users of a repository would not need to take the extra step of
   configuring their workspace for blame. This is most impactful for open
   source projects with many contributors.
   2. Git services (github, gitlab, etc.) could incorporate this feature
   into their blame systems automatically.

If this has already been discussed, please point me to the thread, as I am a new member of this list.

If my proposal is worth considering, I'd be happy to provide more input.
--Terry
Barret Rhoden· Sep 16, 2019, 15:03 UTC · re: Terry Davis · lore

Re: blame --ignore-rev - add place to specify defaults at repo level

Hi -
On 8/28/19 1:07 PM, Terry Davis wrote:
Show 17 quoted lines
> The new blame options (--ignore-rev, --ignore-revs-file) and config options
> (blame.markIgnoredLines,  blame.markUnblamables,  blame.ignoreRevsFile) are
> great, and much appreciated. However, for my primary use (one-time
> automated reformatting of an entire repository), there is still some
> friction preventing adoption.
> 
> Adding a default location for the config options (much like .gitignore)
> specified above would have the following benefits:
> 
>     1. New users of a repository would not need to take the extra step of
>     configuring their workspace for blame. This is most impactful for open
>     source projects with many contributors.
>     2. Git services (github, gitlab, etc.) could incorporate this feature
>     into their blame systems automatically.
> 
> If this has already been discussed, please point me to the thread, as I am
> a new member of this list.
Sorry for the delayed response.  In v1 I had a default ignore file:
https://public-inbox.org/git/20190107213013.231514-1-brho@google.com/

The first few responses have some feedback in that area. The short version: don't give the users potentially incorrect results without them knowing about it. Though if in practice users just run a one-time script to turn on a default ignore file and then never think about it again, that might be less of a concern.

But we do return "incorrect" results from blame ignore. We have a bunch of 'mark' options to help with this, but I don't think there was a consensus on what the best ones were. Some people wanted to see any ignored lines, some wanted to see unblamables, some not, etc. I can picture users who are unfamiliar with blame-ignore getting annoyed by tracing through a line's history and getting surprised by a wrong answer.

Maybe once the feature gains popularity and gets used a bit more, we can learn what good defaults are, and then we can make a particular ignore file a default setting. I'd be fine with that, but then again I had a default file in the first place. =)

FWIW, I just set a single ignore-revs-file globally, though that will only work if every project uses the same filename. I went with ".git-blame-ignore-revs", which is what ChromeOS did for hyper-blame and what I use on some of my projects.

Thanks,
Barret

← back to recent threads