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.
Example usuage:
git commit --fixup=reword:<commit>
** This work is rebased on the top of cm/rebase-i-updates.
Changes from v2 :
* doc/git-commit.c: reword and simplify the `--fixup=[amend|reword]`
* error out "foo" in the output message when `--fixup=reword:` combined
with pathspec i.e
$ git commit --fixup=reword:HEAD~ -- foo
(I am bit unsure about this as I have directly used the "argv" to get the
first foo (file) passed. I am doubtful and not sure about, if we can
use the `pathspec_from_file` in (builtin/commit.c) ? )
* fixes the TRANSLATOR, commit message and other minor cleanup (v2 2/6)
Charvi Mendiratta (6):
sequencer: export 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 | 125 ++++++++++++++++++--
commit.c | 14 +++
commit.h | 3 +
sequencer.c | 14 ---
t/t3437-rebase-fixup-options.sh | 30 +----
t/t7500-commit-template-squash-signoff.sh | 135 ++++++++++++++++++++++
8 files changed, 316 insertions(+), 66 deletions(-)
--
2.29.0.rc1