author | Junio C Hamano <gitster@pobox.com> | |
Thu, 25 Nov 2010 00:00:33 +0000 (16:00 -0800) | ||
committer | Junio 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
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 | patch | | diff1 | | diff2 | | blob | history |
Makefile | patch | | diff1 | | diff2 | | blob | history |
builtin.h | patch | | diff1 | | diff2 | | blob | history |
builtin/merge.c | patch | | diff1 | | diff2 | | blob | history |
builtin/notes.c | patch | | diff1 | | diff2 | | blob | history |
notes.c | patch | | diff1 | | diff2 | | blob | history |
notes.h | patch | | diff1 | | diff2 | | blob | history |
t/t3301-notes.sh | patch | | diff1 | | diff2 | | blob | history |
t/t3404-rebase-interactive.sh | patch | | diff1 | | diff2 | | blob | history |
diff --cc Documentation/git-merge.txt
Simple merge
diff --cc Makefile
Simple merge
diff --cc builtin.h
index 5d97009e3405e56cb83ea90d49269b3baa77e738,908d85064db32fa80e2b63e222ff0316088c3223..904e067a88f242b42f16b715d2b67b45a101e468
+++ b/builtin.h
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
--- 1/builtin/merge.c
--- 2/builtin/merge.c
+++ b/builtin/merge.c
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
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
diff --cc t/t3301-notes.sh
Simple merge
diff --cc t/t3404-rebase-interactive.sh
Simple merge