Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> --- sequencer.c | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/sequencer.c b/sequencer.c index 74480d7..6d13e63 100644 --- a/sequencer.c +++ b/sequencer.c @@ -14,6 +14,7 @@ #include "merge-recursive.h" #include "refs.h" #include "argv-array.h" +#include "builtin.h" #define GIT_REFLOG_ACTION "GIT_REFLOG_ACTION" @@ -158,6 +159,32 @@ static void run_rewrite_hook(const char *name) finish_command(&proc); } +static void copy_notes(const char *name) +{ + struct notes_rewrite_cfg *cfg; + int i; + + cfg = init_copy_notes_for_rewrite(name); + if (!cfg) + return; + + for (i = 0; i < rewritten.nr; i++) { + struct rewritten_list_item *item = &rewritten.items[i]; + copy_note_for_rewrite(cfg, item->from, item->to); + } + + finish_copy_notes_for_rewrite(cfg); +} + +static void finish(struct replay_opts *opts) +{ + if (opts->action != REPLAY_PICK) + return; + + run_rewrite_hook("cherry-pick"); + copy_notes("cherry-pick"); +} + static void remove_sequencer_state(void) { struct strbuf seq_dir = STRBUF_INIT; @@ -1131,8 +1158,7 @@ static int pick_commits(struct commit_list *todo_list, struct replay_opts *opts) } } - if (opts->action == REPLAY_PICK) - run_rewrite_hook("cherry-pick"); + finish(opts); /* * Sequence of picks finished successfully; cleanup by @@ -1188,8 +1214,7 @@ static int single_pick(struct commit *cmit, struct replay_opts *opts) ret = do_pick_commit(cmit, opts); if (ret) return ret; - if (opts->action == REPLAY_PICK) - run_rewrite_hook("cherry-pick"); + finish(opts); return 0; } -- 1.8.3.698.g079b096 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html