And use it on commit.c.
Signed-off-by: Felipe Contreras <[email protected]>
---
builtin/commit.c | 8 +-------
builtin/rewrite.c | 17 +++++++++++++++++
builtin/rewrite.h | 1 +
3 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/builtin/commit.c b/builtin/commit.c
index 56dab4f..4f35794 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1557,16 +1557,10 @@ int cmd_commit(int argc, const char **argv, const char
*prefix)
rerere(0);
run_hook(get_index_file(), "post-commit", NULL);
if (amend && !no_post_rewrite) {
- struct notes_rewrite_cfg *cfg;
struct rewritten rewrite;
memset(&rewrite, 0, sizeof(rewrite));
- cfg = init_copy_notes_for_rewrite("amend");
- 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);
- }
add_rewritten(&rewrite, current_head->object.sha1, sha1);
+ copy_rewrite_notes(&rewrite, "amend");
run_rewrite_hook(&rewrite, "amend");
}
if (!quiet)
diff --git a/builtin/rewrite.c b/builtin/rewrite.c
index 15fcd1a..02e0ea9 100644
--- a/builtin/rewrite.c
+++ b/builtin/rewrite.c
@@ -104,3 +104,20 @@ int run_rewrite_hook(struct rewritten *list, const char
*name)
close(proc.in);
return finish_command(&proc);
}
+
+void copy_rewrite_notes(struct rewritten *list, const char *name)
+{
+ struct notes_rewrite_cfg *cfg;
+ int i;
+
+ cfg = init_copy_notes_for_rewrite(name);
+ if (!cfg)
+ return;
+
+ for (i = 0; i < list->nr; i++) {
+ struct rewritten_item *item = &list->items[i];
+ copy_note_for_rewrite(cfg, item->from, item->to);
+ }
+
+ finish_copy_notes_for_rewrite(cfg);
+}
diff --git a/builtin/rewrite.h b/builtin/rewrite.h
index fd00e66..38b2caf 100644
--- a/builtin/rewrite.h
+++ b/builtin/rewrite.h
@@ -15,5 +15,6 @@ void add_rewritten(struct rewritten *list, unsigned char
*from, unsigned char *t
int store_rewritten(struct rewritten *list, const char *file);
void load_rewritten(struct rewritten *list, const char *file);
int run_rewrite_hook(struct rewritten *list, const char *name);
+void copy_rewrite_notes(struct rewritten *list, const char *name);
#endif
--
1.8.3.698.g079b096
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html