Skip to content

blame: respect .git-blame-ignore-revs automatically

Abhijeetsingh Meena via GitGitGadget git 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest2 patches 16 repliesIn review
  2. v11 patch 4 repliesSuperseded

Changes in v2 from the cover letter

================

* Updated the commit message for the first patch. I incorporated Kristoffer’s suggestions by directly using the example he provided, ensuring the commit message aligns with the project's standards.
* Attempted to use --no-ignore-revs-file to bypass the .git-blame-ignore-revs file, but observed that it did not ignore the specified revisions.
* Introduced the --override-ignore-revs option (short form: -O) as a straightforward method to override any configured revision ignores, providing users with more control.
* For the second commit, I applied Kristoffer’s feedback in writing the commit message to ensure consistency and clarity.

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2blame: respect .git-blame-ignore-revs automaticallybuiltin/blame.c t/t8015-blame-default-ignore-revs.sh+34 -012 replies
2/2blame: introduce --override-ignore-revs to bypass ignore revisions listbuiltin/blame.c t/t8016-blame-override-ignore-revs.sh+32 -14 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH v2 0/2] blame: respect .git-blame-ignore-revs automatically

Summary
=======

This patch introduces the ability for git blame to automatically respect the .git-blame-ignore-revs file, which can help users streamline their workflows by ignoring revisions for non-functional changes.

The feature is inspired by similar practices in other projects like Chromium, and it aligns with needs expressed by users in discussions around revision-ignoring mechanisms for git blame.

I have incorporated suggestions provided during the review of patch v1, including improvements to the commit message and addressing how to override ignore revisions using a new option.

Patch Updates and Improvements
==============================

Changes since v1
================

* Updated the commit message for the first patch. I incorporated Kristoffer’s suggestions by directly using the example he provided, ensuring the commit message aligns with the project's standards.
* Attempted to use --no-ignore-revs-file to bypass the .git-blame-ignore-revs file, but observed that it did not ignore the specified revisions.
* Introduced the --override-ignore-revs option (short form: -O) as a straightforward method to override any configured revision ignores, providing users with more control.
* For the second commit, I applied Kristoffer’s feedback in writing the commit message to ensure consistency and clarity.

Abhijeetsingh Meena (2):
blame: respect .git-blame-ignore-revs automatically
blame: introduce --override-ignore-revs to bypass ignore revisions
list

 builtin/blame.c                       | 16 +++++++++++++++-
 t/t8015-blame-default-ignore-revs.sh  | 26 ++++++++++++++++++++++++++
 t/t8016-blame-override-ignore-revs.sh | 25 +++++++++++++++++++++++++
 3 files changed, 66 insertions(+), 1 deletion(-)
 create mode 100755 t/t8015-blame-default-ignore-revs.sh
 create mode 100755 t/t8016-blame-override-ignore-revs.sh

base-commit: ef8ce8f3d4344fd3af049c17eeba5cd20d98b69f
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1809%2FEthan0456%2Fblame-auto-ignore-revs-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1809/Ethan0456/blame-auto-ignore-revs-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/1809

Range-diff vs v1:

1: 666404681d9 ! 1: 4ed930cab1b blame: respect .git-blame-ignore-revs automatically
@@ Metadata
## Commit message ##
blame: respect .git-blame-ignore-revs automatically

- Modify git blame to automatically respect a .git-blame-ignore-revs
- file if it exists in the repository. This file is used by many projects
- to ignore non-functional changes, such as reformatting or large-scale
- refactoring, when generating blame information.
+ git-blame(1) can ignore a list of commits with --ignore-revs-file.
+ This is useful for marking uninteresting commits like formatting
+ changes, refactors and whatever else should not be “blamed”. Some
+ projects even version control this file so that all contributors can
+ use it; the conventional name is .git-blame-ignore-revs.

- Before this change, users had to manually specify the file with the
- --ignore-revs-file option. This update streamlines the process by
- automatically detecting the .git-blame-ignore-revs file, reducing
- manual effort.
-
- This change aligns with the standardized practice in many repositories
- and simplifies the workflow for users.
+ But each user still has to opt-in to the standard ignore list,
+ either with this option or with the config blame.ignoreRevsFile.
+ Let’s teach git-blame(1) to respect this conventional file in order
+ to streamline the process.

@@ t/t8015-blame-default-ignore-revs.sh (new)
+'
+
+test_done
- \ No newline at end of file
-: ----------- > 2: 8d2fa3af796 blame: introduce --override-ignore-revs to bypass ignore revisions list

Signature · 1 line
gitgitgadget