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:
parent
edca415256
commit
80a14665b1
@ -36,7 +36,7 @@ struct notes_rewrite_cfg {
|
|||||||
struct notes_rewrite_cfg *init_copy_notes_for_rewrite(const char *cmd);
|
struct notes_rewrite_cfg *init_copy_notes_for_rewrite(const char *cmd);
|
||||||
int copy_note_for_rewrite(struct notes_rewrite_cfg *c,
|
int copy_note_for_rewrite(struct notes_rewrite_cfg *c,
|
||||||
const unsigned char *from_obj, const unsigned char *to_obj);
|
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);
|
extern int textconv_object(const char *path, unsigned mode, const unsigned char *sha1, int sha1_valid, char **buf, unsigned long *buf_size);
|
||||||
|
|
||||||
|
@ -1591,7 +1591,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
|
|||||||
if (cfg) {
|
if (cfg) {
|
||||||
/* we are amending, so current_head is not NULL */
|
/* we are amending, so current_head is not NULL */
|
||||||
copy_note_for_rewrite(cfg, current_head->object.sha1, sha1);
|
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);
|
run_rewrite_hook(current_head->object.sha1, sha1);
|
||||||
}
|
}
|
||||||
|
@ -403,11 +403,11 @@ int copy_note_for_rewrite(struct notes_rewrite_cfg *c,
|
|||||||
return ret;
|
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;
|
int i;
|
||||||
for (i = 0; c->trees[i]; 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_notes(c->trees[i]);
|
||||||
}
|
}
|
||||||
free(c->trees);
|
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_rewrite_cfg *c = NULL;
|
||||||
struct notes_tree *t = NULL;
|
struct notes_tree *t = NULL;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
const char *msg = "Notes added by 'git notes copy'";
|
||||||
|
|
||||||
if (rewrite_cmd) {
|
if (rewrite_cmd) {
|
||||||
c = init_copy_notes_for_rewrite(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) {
|
if (!rewrite_cmd) {
|
||||||
commit_notes(t, "Notes added by 'git notes copy'");
|
commit_notes(t, msg);
|
||||||
free_notes(t);
|
free_notes(t);
|
||||||
} else {
|
} else {
|
||||||
finish_copy_notes_for_rewrite(c);
|
finish_copy_notes_for_rewrite(c, msg);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user