[PATCH v2 0/2] blame: respect .git-blame-ignore-revs automatically
- From
- Abhijeetsingh Meena via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Oct 12, 2024, 04:37 UTC
- Message-ID
- <pull.1809.v2.git.1728707867.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1809.git.1728370892696.gitgitgadget@gmail.com>
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
listbuiltin/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.
Signed-off-by: Abhijeetsingh Meena <abhijeet040403@gmail.com>
@@ 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-- gitgitgadget