builtin-commit: fix amending of the initial commit
authorJunio C Hamano <gitster@pobox.com>
Sun, 23 Dec 2007 03:22:29 +0000 (19:22 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sun, 23 Dec 2007 03:45:06 +0000 (19:45 -0800)
When amending initial commit without editor, the command
incorrectly barfed because the check to see if there is anything
to commit referenced the non-existent HEAD^1.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-commit.c

index 96410de55ddbc52eb116049b4f6a2792a5386cb4..eebd4cf066852e5113d2dc339f7853a3f3752f30 100644 (file)
@@ -374,7 +374,7 @@ static int prepare_log_message(const char *index_file, const char *prefix)
 
        if (no_edit) {
                struct rev_info rev;
-               unsigned char sha1[40];
+               unsigned char sha1[20];
                const char *parent = "HEAD";
 
                fclose(fp);
@@ -382,12 +382,12 @@ static int prepare_log_message(const char *index_file, const char *prefix)
                if (!active_nr && read_cache() < 0)
                        die("Cannot read index");
 
-               if (get_sha1("HEAD", sha1) != 0)
-                       return !!active_nr;
-
                if (amend)
                        parent = "HEAD^1";
 
+               if (get_sha1(parent, sha1))
+                       return !!active_nr;
+
                init_revisions(&rev, "");
                rev.abbrev = 0;
                setup_revisions(0, NULL, &rev, parent);