[PATCH v8 0/8] implement notes.mergeStrategy option
- From
Jacob Keller <jacob.e.keller@intel.com>
- Date
- Aug 17, 2015, 08:46 UTC
- Message-ID
- <1439801191-3026-1-git-send-email-jacob.e.keller@intel.com>
From: Jacob Keller <jacob.keller@gmail.com>
- Changes since v7 - * add patches to make rewrite and merge take same options * camel case mergeStrategy * move init_notes_check above reading git-config in merge() This is necessary as it ensures refs are inside refs/notes/*
It should be noted that git-notes already blocks all operations outside of refs/notes, including merging from refs outside of refs/notes. This series leaves the ability to merge from non-refs/notes refs as an enhancement for a future author. However, git-notes also (correctly) prevents merge (and any other option) into non refs/notes/* refs. You may notice a "BUG:" print statement after skip_prefix, this is only as a failsafe and is marked BUG since it should never be true.
Hopefully everything looks good now. I chose to add patches which combine rewrite and notes-merge options to take the same parameters. This does cause some weirdness since ours and theirs is swapped much like in a rebase merge conflict.
If we dont' like this, I am ok with re-writing this to not document the synonyms. However, I think that a good future direction would be to make rewrite use the exact same flow as merge, and support the `manual` mode as well using the full notes-merge harness.
Jacob Keller (8):
notes: document cat_sort_uniq rewriteMode
notes: extract enum notes_merge_strategy to notes-utils.h
note: extract parse_notes_merge_strategy to notes-utils
notes: allow use of the "rewrite" terminology for merge strategies
notes: implement parse_combine_rewrite_fn using
parse_notes_merge_strategy
notes: add tests for --commit/--abort/--strategy exclusivity
notes: add notes.mergeStrategy option to select default strategy
notes: teach git-notes about notes.<ref>.mergeStrategy optionDocumentation/config.txt | 22 +++++- Documentation/git-notes.txt | 43 +++++++++-- builtin/notes.c | 43 +++++++---- notes-merge.h | 10 +-- notes-utils.c | 50 ++++++++++--- notes-utils.h | 9 +++ t/t3301-notes.sh | 55 ++++++++++++++ t/t3309-notes-merge-auto-resolve.sh | 135 ++++++++++++++++++++++++++++++++++ t/t3310-notes-merge-manual-resolve.sh | 12 +++ 9 files changed, 341 insertions(+), 38 deletions(-)
-- 2.5.0.280.g4aaba03