finish_copy_notes_for_rewrite(): Let caller provide commit message
authorJohan Herland <johan@herland.net>
Wed, 12 Jun 2013 00:12:59 +0000 (02:12 +0200)
committerJunio C Hamano <gitster@pobox.com>
Wed, 12 Jun 2013 17:27:41 +0000 (10:27 -0700)
When copying notes for a rewritten object, the resulting notes commit
would have the following hardcoded commit message:

Notes added by 'git notes copy'

This is obviously bogus when the notes rewriting is performed by
'git commit --amend'.

Therefore, let the caller specify an appropriate notes commit message
instead of hardcoding it. The above message is used for 'git notes copy',
but when calling finish_copy_notes_for_rewrite() from builtin/commit.c,
we use the following message instead:

Notes added by 'git commit --amend'

Cc: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin.h
builtin/commit.c
builtin/notes.c
index faef55913634a21a757b4814f855ed834c32915e..78fb14db2ea228d722bf50874e9329d5c412e2ee 100644 (file)
--- a/builtin.h
+++ b/builtin.h
@@ -36,7 +36,7 @@ struct notes_rewrite_cfg {
 struct notes_rewrite_cfg *init_copy_notes_for_rewrite(const char *cmd);
 int copy_note_for_rewrite(struct notes_rewrite_cfg *c,
                          const unsigned char *from_obj, const unsigned char *to_obj);
-void finish_copy_notes_for_rewrite(struct notes_rewrite_cfg *c);
+void finish_copy_notes_for_rewrite(struct notes_rewrite_cfg *c, const char *msg);
 
 extern int textconv_object(const char *path, unsigned mode, const unsigned char *sha1, int sha1_valid, char **buf, unsigned long *buf_size);
 
index d2f30d960a71e41da88d6cc4201cbdca168b8648..f8df8ca60dbb5fb376a781aa83772749da983dad 100644 (file)
@@ -1591,7 +1591,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
                if (cfg) {
                        /* we are amending, so current_head is not NULL */
                        copy_note_for_rewrite(cfg, current_head->object.sha1, sha1);
-                       finish_copy_notes_for_rewrite(cfg);
+                       finish_copy_notes_for_rewrite(cfg, "Notes added by 'git commit --amend'");
                }
                run_rewrite_hook(current_head->object.sha1, sha1);
        }
index 57748a6fb67820c15ee6a8a92b32d4a0392dd933..6a80714b3e3e40371de1ff6d4114934f4edec1e9 100644 (file)
@@ -403,11 +403,11 @@ int copy_note_for_rewrite(struct notes_rewrite_cfg *c,
        return ret;
 }
 
-void finish_copy_notes_for_rewrite(struct notes_rewrite_cfg *c)
+void finish_copy_notes_for_rewrite(struct notes_rewrite_cfg *c, const char *msg)
 {
        int i;
        for (i = 0; c->trees[i]; i++) {
-               commit_notes(c->trees[i], "Notes added by 'git notes copy'");
+               commit_notes(c->trees[i], msg);
                free_notes(c->trees[i]);
        }
        free(c->trees);
@@ -420,6 +420,7 @@ static int notes_copy_from_stdin(int force, const char *rewrite_cmd)
        struct notes_rewrite_cfg *c = NULL;
        struct notes_tree *t = NULL;
        int ret = 0;
+       const char *msg = "Notes added by 'git notes copy'";
 
        if (rewrite_cmd) {
                c = init_copy_notes_for_rewrite(rewrite_cmd);
@@ -461,10 +462,10 @@ static int notes_copy_from_stdin(int force, const char *rewrite_cmd)
        }
 
        if (!rewrite_cmd) {
-               commit_notes(t, "Notes added by 'git notes copy'");
+               commit_notes(t, msg);
                free_notes(t);
        } else {
-               finish_copy_notes_for_rewrite(c);
+               finish_copy_notes_for_rewrite(c, msg);
        }
        return ret;
 }