summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 12a6d75)
raw | patch | inline | side by side (parent: 12a6d75)
author | Junio C Hamano <gitster@pobox.com> | |
Fri, 14 Dec 2007 19:57:22 +0000 (11:57 -0800) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Fri, 14 Dec 2007 23:39:54 +0000 (15:39 -0800) |
After tentatively applying a patch from a contributor, you can get a
replacement patch with corrected code and unusable commit log message.
In such a case, this sequence ought to give you an editor based on the
message in the earlier commit, to let you describe an incremental
improvement:
git reset --hard HEAD^ ;# discard the earlier one
git am <corrected-patch
git commit --amend -c HEAD@{1}
Unfortunately, --amend insisted reusing the message from the commit
being amended, ignoring the -c option. This corrects it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
replacement patch with corrected code and unusable commit log message.
In such a case, this sequence ought to give you an editor based on the
message in the earlier commit, to let you describe an incremental
improvement:
git reset --hard HEAD^ ;# discard the earlier one
git am <corrected-patch
git commit --amend -c HEAD@{1}
Unfortunately, --amend insisted reusing the message from the commit
being amended, ignoring the -c option. This corrects it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-commit.c | patch | blob | history | |
t/t7501-commit.sh | patch | blob | history |
diff --git a/builtin-commit.c b/builtin-commit.c
index ad9f9211b39af6cc7d1f319b6a8da7c514a33f12..518ebe0347e631c72f4e2a83b948259ee20fd213 100644 (file)
--- a/builtin-commit.c
+++ b/builtin-commit.c
die("Option -m cannot be combined with -c/-C/-F.");
if (edit_message)
use_message = edit_message;
- if (amend)
+ if (amend && !use_message)
use_message = "HEAD";
if (use_message) {
unsigned char sha1[20];
diff --git a/t/t7501-commit.sh b/t/t7501-commit.sh
index 05aa97d6f3d3a87d94004b9f9f4394d8e35175f6..d1a415a12624f4a116a9001bad48c34420671280 100755 (executable)
--- a/t/t7501-commit.sh
+++ b/t/t7501-commit.sh
'
+test_expect_success 'amend using the message from another commit' '
+
+ git reset --hard &&
+ test_tick &&
+ git commit --allow-empty -m "old commit" &&
+ old=$(git rev-parse --verify HEAD) &&
+ test_tick &&
+ git commit --allow-empty -m "new commit" &&
+ new=$(git rev-parse --verify HEAD) &&
+ test_tick &&
+ git commit --allow-empty --amend -C "$old" &&
+ git show --pretty="format:%ad %s" "$old" >expected &&
+ git show --pretty="format:%ad %s" HEAD >actual &&
+ diff -u expected actual
+
+'
+
test_done