[PATCH v8 0/8] implement notes.mergeStrategy option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Jacob Keller <jacob.keller@xxxxxxxxx>

- 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 option

 Documentation/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

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]