commit: use value of GIT_REFLOG_ACTION env variable as reflog message
authorChristian Couder <chriscool@tuxfamily.org>
Sat, 12 Jun 2010 16:05:12 +0000 (18:05 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sun, 13 Jun 2010 16:42:38 +0000 (09:42 -0700)
The environment variable GIT_REFLOG_ACTION was used by git-commit.sh,
but when it was converted to a builtin
(f5bbc3225c4b073a7ff3218164a0c820299bc9c6, Port git commit to C,
Nov 8 2007) this was lost.

Let's use it again as it is more user friendly when reverting or
cherry-picking to see "revert" or "cherry-pick" in the reflog rather
than to just see "commit".

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/commit.c
t/t3501-revert-cherry-pick.sh

index c5ab683d5b66d5ad85f53d13d6df71e29cd9234d..58bad61306fb5da2a0d22a7d3827c2543f0aafcb 100644 (file)
@@ -1232,13 +1232,16 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
        }
 
        /* Determine parents */
+       reflog_msg = getenv("GIT_REFLOG_ACTION");
        if (initial_commit) {
-               reflog_msg = "commit (initial)";
+               if (!reflog_msg)
+                       reflog_msg = "commit (initial)";
        } else if (amend) {
                struct commit_list *c;
                struct commit *commit;
 
-               reflog_msg = "commit (amend)";
+               if (!reflog_msg)
+                       reflog_msg = "commit (amend)";
                commit = lookup_commit(head_sha1);
                if (!commit || parse_commit(commit))
                        die("could not parse HEAD commit");
@@ -1249,7 +1252,8 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
                struct strbuf m = STRBUF_INIT;
                FILE *fp;
 
-               reflog_msg = "commit (merge)";
+               if (!reflog_msg)
+                       reflog_msg = "commit (merge)";
                pptr = &commit_list_insert(lookup_commit(head_sha1), pptr)->next;
                fp = fopen(git_path("MERGE_HEAD"), "r");
                if (fp == NULL)
@@ -1272,7 +1276,8 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
                if (allow_fast_forward)
                        parents = reduce_heads(parents);
        } else {
-               reflog_msg = "commit";
+               if (!reflog_msg)
+                       reflog_msg = "commit";
                pptr = &commit_list_insert(lookup_commit(head_sha1), pptr)->next;
        }
 
index 7f858151d4d7c1548803944de0dd8c54cdd8c78b..e4fbf7a2107c680ee5c51f2ccf5297ed1fd4d868 100755 (executable)
@@ -47,7 +47,8 @@ test_expect_success 'cherry-pick after renaming branch' '
        git cherry-pick added &&
        test $(git rev-parse HEAD^) = $(git rev-parse rename2) &&
        test -f opos &&
-       grep "Add extra line at the end" opos
+       grep "Add extra line at the end" opos &&
+       git reflog -1 | grep cherry-pick
 
 '
 
@@ -57,7 +58,8 @@ test_expect_success 'revert after renaming branch' '
        git revert added &&
        test $(git rev-parse HEAD^) = $(git rev-parse rename1) &&
        test -f spoo &&
-       ! grep "Add extra line at the end" spoo
+       ! grep "Add extra line at the end" spoo &&
+       git reflog -1 | grep revert
 
 '