Support ignoring commits in blame (blame.ignoreRevsFile config option)
Problem to solve
I want to ignore commits when viewing blame (available as of git 2.23)
Intended users
Everyone except Buyers (and Product Managers?).
Further details
Use cases:
- Add a formatting tool to the project without breaking git blame.
- Perform minor refactorings (e.g. rename a variable) without affecting the blame.
Proposal
Add a new section in repository settings* to specify the file(s) pointed to by the config option1 normally specified blame.ignoreRevsFile
, and UI toggles for config options blame.markUnblamables
and blame.markIgnoredLines
.
The blame view then incorporates the algorithm implemented in git to re-assign blame to each line.
UI options should include override toggles for the above specified blame.mark*
flags, and there should be a UI hint that lets users know revisions are being ignored.
*If git is ever updated to include a default place to look for these settings that lives inside the repo, this feature should automatically activate, with an option to opt-out.
Permissions and Security
Only project owners/maintainers can specify these options at a project level. (Not 100% sure on this one...)
Documentation
Testing
- The blame output of the git client should match gitlab's blame, given the same configuration.
(not sure how this would be implemented)
- Risk: May need to reimplement git functionality. Updates to the reblaming algorithm would need to be tracked in this case.
What does success look like, and how can we measure that?
Users can see the same blame in the gitlab UI and the git client. More people would start converting projects to use auto-formatters.