diff options
author | Johan Herland <johan@herland.net> | 2010-11-15 00:55:12 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-11-17 13:21:58 -0800 |
commit | 3228e67120a8c71bf7804a5c52448a841d6f3b58 (patch) | |
tree | 7cd1562259a3942cc2811c2a4f557d077649698a /notes-merge.h | |
parent | 2085b16aefdbb1dc081aa40c62eb8110a222731d (diff) | |
download | git-3228e67120a8c71bf7804a5c52448a841d6f3b58.tar.gz |
git notes merge: Add automatic conflict resolvers (ours, theirs, union)
The new -s/--strategy command-line option to 'git notes merge' allow the user
to choose how notes merge conflicts should be resolved. There are four valid
strategies to choose from:
1. "manual" (the default): This will let the user manually resolve conflicts.
This option currently fails with an error message. It will be implemented
properly in future patches.
2. "ours": This automatically chooses the local version of a conflict, and
discards the remote version.
3. "theirs": This automatically chooses the remote version of a conflict, and
discards the local version.
4. "union": This automatically resolves the conflict by appending the remote
version to the local version.
The strategies are implemented using the combine_notes_* functions from the
notes.h API.
The patch also includes testcases verifying the correct implementation of
these strategies.
This patch has been improved by the following contributions:
- Jonathan Nieder: Future-proof by always checking add_note() return value
- Stephen Boyd: Use test_commit
- Stephen Boyd: Use correct option name
Thanks-to: Jonathan Nieder <jrnieder@gmail.com>
Thanks-to: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'notes-merge.h')
-rw-r--r-- | notes-merge.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/notes-merge.h b/notes-merge.h index 577cfb33cd..ed356ae3af 100644 --- a/notes-merge.h +++ b/notes-merge.h @@ -11,6 +11,12 @@ struct notes_merge_options { const char *remote_ref; const char *commit_msg; int verbosity; + enum { + NOTES_MERGE_RESOLVE_MANUAL = 0, + NOTES_MERGE_RESOLVE_OURS, + NOTES_MERGE_RESOLVE_THEIRS, + NOTES_MERGE_RESOLVE_UNION + } strategy; }; void init_notes_merge_options(struct notes_merge_options *o); |