Skip to content

The return of -Xours, -Xtheirs, -Xsubtree=dir

Avery Pennarun git 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest8 patches 17 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/8git-merge-file --ours, --theirsDocumentation/git-merge-file.txt builtin-merge-file.c xdiff/xdiff.h +1 more+29 -65 replies
2/8builtin-merge.c: call exclude_cmds() correctly.builtin-merge.c+1 -12 replies
3/8git-merge-recursive-{ours,theirs}.gitignore Makefile builtin-checkout.c +11 more+120 -207 replies
4/8Teach git-merge to pass -X<option> to the backend strategy moduleMakefile builtin-merge-recursive.c builtin-merge.c +1 more+53 -151 reply
5/8Teach git-pull to pass -X<option> to git-mergegit-pull.sh t/t6034-merge-ours-theirs.sh+23 -21 reply
6/8Make "subtree" part more orthogonal to the rest of merge-recursive.builtin-merge-recursive.c builtin-merge.c cache.h +3 more+90 -111 reply
7/8Extend merge-subtree tests to test -Xsubtree=dir.t/t6029-merge-subtree.sh+46 -10 replies
8/8Document that merge strategies can now take their own optionsDocumentation/merge-options.txt Documentation/merge-strategies.txt+32 -10 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/8] The return of -Xours, -Xtheirs, -Xsubtree=dir

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