Code

Merge branch 'jh/notes-merge' into next
authorJunio C Hamano <gitster@pobox.com>
Thu, 25 Nov 2010 00:00:33 +0000 (16:00 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 25 Nov 2010 00:00:33 +0000 (16:00 -0800)
* jh/notes-merge: (23 commits)
  Provide 'git merge --abort' as a synonym to 'git reset --merge'
  cmd_merge(): Parse options before checking MERGE_HEAD
  Provide 'git notes get-ref' to easily retrieve current notes ref
  git notes merge: Add testcases for merging notes trees at different fanouts
  git notes merge: Add another auto-resolving strategy: "cat_sort_uniq"
  git notes merge: --commit should fail if underlying notes ref has moved
  git notes merge: List conflicting notes in notes merge commit message
  git notes merge: Manual conflict resolution, part 2/2
  git notes merge: Manual conflict resolution, part 1/2
  Documentation: Preliminary docs on 'git notes merge'
  git notes merge: Add automatic conflict resolvers (ours, theirs, union)
  git notes merge: Handle real, non-conflicting notes merges
  builtin/notes.c: Refactor creation of notes commits.
  git notes merge: Initial implementation handling trivial merges only
  builtin/notes.c: Split notes ref DWIMmery into a separate function
  notes.c: Use two newlines (instead of one) when concatenating notes
  (trivial) t3303: Indent with tabs instead of spaces for consistency
  notes.h/c: Propagate combine_notes_fn return value to add_note() and beyond
  notes.h/c: Allow combine_notes functions to remove notes
  notes.c: Reorder functions in preparation for next commit
  ...

Conflicts:
builtin.h

1  2 
Documentation/git-merge.txt
Makefile
builtin.h
builtin/merge.c
builtin/notes.c
notes.c
notes.h
t/t3301-notes.sh
t/t3404-rebase-interactive.sh

Simple merge
diff --cc Makefile
Simple merge
diff --cc builtin.h
index 5d97009e3405e56cb83ea90d49269b3baa77e738,908d85064db32fa80e2b63e222ff0316088c3223..904e067a88f242b42f16b715d2b67b45a101e468
+++ b/builtin.h
@@@ -13,10 -11,13 +13,10 @@@ extern const char git_version_string[]
  extern const char git_usage_string[];
  extern const char git_more_info_string[];
  
 -extern void list_common_cmds_help(void);
 -extern const char *help_unknown_cmd(const char *cmd);
  extern void prune_packed_objects(int);
 -extern int fmt_merge_msg(int merge_summary, struct strbuf *in,
 -      struct strbuf *out);
 -extern int fmt_merge_msg_shortlog(struct strbuf *in, struct strbuf *out);
 +extern int fmt_merge_msg(struct strbuf *in, struct strbuf *out,
 +                       int merge_title, int shortlog_len);
- extern int commit_notes(struct notes_tree *t, const char *msg);
+ extern void commit_notes(struct notes_tree *t, const char *msg);
  
  struct notes_rewrite_cfg {
        struct notes_tree **trees;
diff --cc builtin/merge.c
index c24a7be020d10540581b41c21a2ecf83df5563d9,0539f7c91289a5707330391424a81d8ba3ba7df9..3921cd304086cbc2edff0e1481f7c7395df8b00a
@@@ -54,9 -54,9 +54,10 @@@ static size_t use_strategies_nr, use_st
  static const char **xopts;
  static size_t xopts_nr, xopts_alloc;
  static const char *branch;
 +static int option_renormalize;
  static int verbosity;
  static int allow_rerere_auto;
+ static int abort_current_merge;
  
  static struct strategy all_strategy[] = {
        { "recursive",  DEFAULT_TWOHEAD | NO_TRIVIAL },
diff --cc builtin/notes.c
Simple merge
diff --cc notes.c
index 70d00135eb5b67cd6f21b416cde2ae4a1967fd0a,96cde4213403c6b77ca5490b459db5fad17776be..a013c1bc638dbf5a8111183a3f9d154721ec5e04
+++ b/notes.c
@@@ -1003,10 -1106,10 +1091,10 @@@ int add_note(struct notes_tree *t, cons
        l = (struct leaf_node *) xmalloc(sizeof(struct leaf_node));
        hashcpy(l->key_sha1, object_sha1);
        hashcpy(l->val_sha1, note_sha1);
-       note_tree_insert(t, t->root, 0, l, PTR_TYPE_NOTE, combine_notes);
+       return note_tree_insert(t, t->root, 0, l, PTR_TYPE_NOTE, combine_notes);
  }
  
 -void remove_note(struct notes_tree *t, const unsigned char *object_sha1)
 +int remove_note(struct notes_tree *t, const unsigned char *object_sha1)
  {
        struct leaf_node l;
  
diff --cc notes.h
Simple merge
Simple merge
Simple merge