Re: blame --ignore-rev - add place to specify defaults at repo level
- From
- Barret Rhoden <brho@google.com>
- Date
- Sep 16, 2019, 15:03 UTC
- Message-ID
- <c34159af-f97e-82b3-e2a1-04adae5c10ac@google.com>
- In-Reply-To
- <CAEziGD9bWPfV+L5z_-drATT8Fxvj=8hzNAQcNH9f9Ez+ncaEvw@mail.gmail.com>
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