log-tree.c: Use struct name_decoration's type for classifying decoration
[gitweb.git] / notes.h
diff --git a/notes.h b/notes.h
index 2cc07409dbcfe36c71d25ae26dc20eff9bf89b6f..cc2dff22a12f2f7e78d37fb316e70f0a1ebaa2cd 100644 (file)
--- a/notes.h
+++ b/notes.h
@@ -40,6 +40,7 @@ extern struct notes_tree {
        char *ref;
        combine_notes_fn *combine_notes;
        int initialized;
+       int dirty;
 } default_notes_tree;
 
 /*
@@ -99,6 +100,15 @@ void remove_note(struct notes_tree *t, const unsigned char *object_sha1);
 const unsigned char *get_note(struct notes_tree *t,
                const unsigned char *object_sha1);
 
+/*
+ * Copy a note from one object to another in the given notes_tree.
+ *
+ * Fails if the to_obj already has a note unless 'force' is true.
+ */
+int copy_note(struct notes_tree *t,
+             const unsigned char *from_obj, const unsigned char *to_obj,
+             int force, combine_notes_fn combine_fn);
+
 /*
  * Flags controlling behaviour of for_each_note()
  *
@@ -161,6 +171,9 @@ int for_each_note(struct notes_tree *t, int flags, each_note_fn fn,
  */
 int write_notes_tree(struct notes_tree *t, unsigned char *result);
 
+/* Flags controlling the operation of prune */
+#define NOTES_PRUNE_VERBOSE 1
+#define NOTES_PRUNE_DRYRUN 2
 /*
  * Remove all notes annotating non-existing objects from the given notes tree
  *
@@ -171,7 +184,7 @@ int write_notes_tree(struct notes_tree *t, unsigned char *result);
  * structure are not persistent until a subsequent call to write_notes_tree()
  * returns zero.
  */
-void prune_notes(struct notes_tree *t);
+void prune_notes(struct notes_tree *t, int flags);
 
 /*
  * Free (and de-initialize) the given notes_tree structure
@@ -202,7 +215,7 @@ void format_note(struct notes_tree *t, const unsigned char *object_sha1,
 struct string_list;
 
 struct display_notes_opt {
-       int suppress_default_notes:1;
+       unsigned int suppress_default_notes:1;
        struct string_list *extra_notes_refs;
 };