[PATCH 1/3] finish_copy_notes_for_rewrite(): Let caller provide commit message
- From
Johan Herland <johan@herland.net>
- Date
- Jun 12, 2013, 00:12 UTC
- Message-ID
- <1370995981-1553-2-git-send-email-johan@herland.net>
- In-Reply-To
- <1370995981-1553-1-git-send-email-johan@herland.net>
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> --- builtin.h | 2 +- builtin/commit.c | 2 +- builtin/notes.c | 9 +++++---- 3 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/builtin.h b/builtin.h index faef559..78fb14d 100644 --- 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); diff --git a/builtin/commit.c b/builtin/commit.c index d2f30d9..f8df8ca 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -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); } diff --git a/builtin/notes.c b/builtin/notes.c index 57748a6..6a80714 100644 --- a/builtin/notes.c +++ b/builtin/notes.c @@ -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; }
-- 1.8.1.3.704.g33f7d4f