[PATCH v4 0/6][Outreachy] commit: Implementation of "amend!" commit
- From
Charvi Mendiratta <charvi077@gmail.com>
- Date
- Mar 10, 2021, 19:43 UTC
- Message-ID
- <20210310194306.32565-1-charvi077@gmail.com>
- In-Reply-To
- <20210301084512.27170-1-charvi077@gmail.com>
This patch series teaches `git commit --fixup` to create "amend!" commit as an alternative that works with `git rebase --autosquash`. It allows to fixup both the content and the commit message of the specified commit. Here we add two suboptions to the `--fixup`, first `amend` suboption that creates an "amend!" commit. It takes the staged changes and also allows to edit the commit message of the commit we are fixing. Example usuage: git commit --fixup=amend:<commit>
Secondly, `reword` suboption that creates an empty "amend!" commit i.e it ignores the staged changes and only allows to reword/edit the commit message of the commit we are fixing. `--fixup=reword:<commit>` is a short-hand of `--fixup=amend:<commit> --only`. Example usuage: git commit --fixup=reword:<commit>
** This work is rebased on the top of cm/rebase-i-updates.
Changes from v3 : (Thanks to Junio C Hamano and Eric Sunshine for the reviews and suggesting the improvements required in the previous patches )
* Now `--fixup=reword:` aliases `--fixup=amend: --only`. Added the respective test and updated documentation. * Modified prepared_amend_commit() in commit.c. * Renamed the subject_length() to commit_subject_length() [v3 - 1/6] * Modified the --fixup=[amend|reword] documentation * Also, updated the commit messages and some other minor cleanup.
Charvi Mendiratta (6): sequencer: export and rename subject_length() commit: add amend suboption to --fixup to create amend! commit commit: add a reword suboption to --fixup t7500: add tests for --fixup=[amend|reword] options t3437: use --fixup with options to create amend! commit doc/git-commit: add documentation for fixup=[amend|reword] options
Documentation/git-commit.txt | 40 ++++++- Documentation/git-rebase.txt | 21 ++-- builtin/commit.c | 118 +++++++++++++++++-- commit.c | 14 +++ commit.h | 3 + sequencer.c | 16 +-- t/t3437-rebase-fixup-options.sh | 30 +---- t/t7500-commit-template-squash-signoff.sh | 135 ++++++++++++++++++++++ 8 files changed, 309 insertions(+), 68 deletions(-)
-- 2.29.0.rc1