Hi -

On 8/28/19 1:07 PM, Terry Davis wrote:
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-b...@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

Reply via email to