As discussed earlier today, this brings back Junio's earlier patch series that introduced (and then used) a -X option for configuring merge strategies. My favourite use of this is -Xsubtree=<dir>, which lets you provide the actual subdir prefix when using the subtree merge strategy. Avery Pennarun (8): git-merge-file --ours, --theirs builtin-merge.c: call exclude_cmds() correctly. git-merge-recursive-{ours,theirs} Teach git-merge to pass -X<option> to the backend strategy module Teach git-pull to pass -X<option> to git-merge Make "subtree" part more orthogonal to the rest of merge-recursive. Extend merge-subtree tests to test -Xsubtree=dir. Document that merge strategies can now take their own options .gitignore | 2 + Documentation/git-merge-file.txt | 12 +++++- Documentation/merge-options.txt | 4 ++ Documentation/merge-strategies.txt | 29 ++++++++++++++- builtin-checkout.c | 2 +- builtin-merge-file.c | 5 ++- builtin-merge-recursive.c | 24 ++++++++++--- builtin-merge.c | 44 +++++++++++++++++++++-- cache.h | 1 + contrib/examples/git-merge.sh | 3 +- git-compat-util.h | 1 + git-pull.sh | 17 ++++++++- git.c | 2 + ll-merge.c | 20 +++++----- ll-merge.h | 2 +- match-trees.c | 69 +++++++++++++++++++++++++++++++++++- merge-recursive.c | 35 +++++++++++++++--- merge-recursive.h | 7 +++- strbuf.c | 9 +++++ t/t6029-merge-subtree.sh | 47 ++++++++++++++++++++++++- t/t6034-merge-ours-theirs.sh | 64 +++++++++++++++++++++++++++++++++ xdiff/xdiff.h | 7 +++- xdiff/xmerge.c | 11 +++++- 23 files changed, 377 insertions(+), 40 deletions(-) create mode 100755 t/t6034-merge-ours-theirs.sh -- 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