path: root/builtin.h
diff options
authorThomas Rast <>2010-03-12 17:04:32 (GMT)
committerJunio C Hamano <>2010-03-13 05:55:39 (GMT)
commit6956f858f6237d426fa422949033e3c558104802 (patch)
tree3b01ce43e51c2cd319db79446568116bbc2a8630 /builtin.h
parent160baa0d9cbdfcdb6251aa5ede77c59c0d53edfd (diff)
notes: implement helpers needed for note copying during rewrite
Implement helper functions to load the rewriting config, and to actually copy the notes. Also document the config. Secondly, also implement an undocumented --for-rewrite=<cmd> option to 'git notes copy' which is used like --stdin, but also puts the configuration for <cmd> into effect. It will be needed to support the copying in git-rebase. Signed-off-by: Thomas Rast <> Acked-by: Johan Herland <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'builtin.h')
1 files changed, 17 insertions, 0 deletions
diff --git a/builtin.h b/builtin.h
index cdf9847..464588b 100644
--- a/builtin.h
+++ b/builtin.h
@@ -20,6 +20,23 @@ extern int commit_tree(const char *msg, unsigned char *tree,
struct commit_list *parents, unsigned char *ret,
const char *author);
extern int commit_notes(struct notes_tree *t, const char *msg);
+struct notes_rewrite_cfg {
+ struct notes_tree **trees;
+ const char *cmd;
+ int enabled;
+ combine_notes_fn *combine;
+ struct string_list *refs;
+ int refs_from_env;
+ int mode_from_env;
+combine_notes_fn *parse_combine_notes_fn(const char *v);
+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);
extern int check_pager_config(const char *cmd);
extern int cmd_add(int argc, const char **argv, const char *prefix);