finish_copy_notes_for_rewrite(): Let caller provide commit message

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>
This commit is contained in:
Johan Herland
2013-06-12 02:12:59 +02:00
committed by Junio C Hamano
parent edca415256
commit 80a14665b1
3 changed files with 7 additions and 6 deletions

View 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;
}