git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 4/8] Teach git-merge to pass -X<option> to the backend strategy module

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 26, 2009, 06:16 UTC
Message-ID
<7vk4xderq0.fsf@alter.siamese.dyndns.org>
In-Reply-To
<73a42e99b4a083c74b017caf2970d1bbf5886b96.1259201377.git.apenwarr@gmail.com>
Avery Pennarun <apenwarr@gmail.com> writes:
Show 14 quoted lines
> Distinguishing slight variation of modes of operation between the vanilla
> merge-recursive and merge-recursive-ours by the command name may have been
> an easy way to experiment, but we should bite the bullet and allow backend
> specific options to be given by the end user.
>
> (Patch originally by Junio Hamano <gitster@pobox.com>.)
>
> Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
> ---
>  Makefile                     |    3 ---
>  builtin-merge-recursive.c    |   21 +++++++++++++++------
>  builtin-merge.c              |   40 ++++++++++++++++++++++++++++++++++++----
>  t/t6034-merge-ours-theirs.sh |    4 ++--
>  4 files changed, 53 insertions(+), 15 deletions(-)

You added .gitignore entries for the two programs previously, and are removing them in this patch, but forgot to remove them from .gitignore in this patch.

As I already suggested you to, if you squash this to the previous one, it is not a big deal, though.

Show 13 quoted lines
> diff --git a/builtin-merge.c b/builtin-merge.c
> index df089bb..9a95bc8 100644
> --- a/builtin-merge.c
> +++ b/builtin-merge.c
> @@ -148,6 +148,17 @@ static int option_parse_strategy(const struct option *opt,
>  	return 0;
>  }
>  
> +static int option_parse_x(const struct option *opt,
> +			  const char *arg, int unset)
> +{
> +	if (unset)
> +		return 0;

Should "merge --no-extended" silently be ignored, or be diagnosed as an error?

Show 6 quoted lines
> @@ -174,6 +185,8 @@ static struct option builtin_merge_options[] = {
>  		"abort if fast-forward is not possible"),
>  	OPT_CALLBACK('s', "strategy", &use_strategies, "strategy",
>  		"merge strategy to use", option_parse_strategy),
> +	OPT_CALLBACK('X', "extended", &xopts, "option=value",
> +		"option for selected merge strategy", option_parse_x),

I actually didn't name X for "extended" but more for "external" (to the merge program proper). "--strategy-option" perhaps?

Previous: Junio C HamanoNext: Junio C Hamano
Message 12 of 26 in “The return of -Xours, -Xtheirs, -Xsubtree=dir”
  1. 0/8 The return of -Xours, -Xtheirs, -Xsubtree=dirAvery Pennarun, Nov 26, 2009
  2. 1/8 git-merge-file --ours, --theirsAvery Pennarun, Nov 26, 2009
  3. 2/8 builtin-merge.c: call exclude_cmds() correctly.Avery Pennarun, Nov 26, 2009
  4. 3/8 git-merge-recursive-{ours,theirs}Avery Pennarun, Nov 26, 2009
  5. 4/8 Teach git-merge to pass -X<option> to the backend strategy moduleAvery Pennarun, Nov 26, 2009
  6. 5/8 Teach git-pull to pass -X<option> to git-mergeAvery Pennarun, Nov 26, 2009
  7. 6/8 Make "subtree" part more orthogonal to the rest of merge-recursive.Avery Pennarun, Nov 26, 2009
  8. 7/8 Extend merge-subtree tests to test -Xsubtree=dir.Avery Pennarun, Nov 26, 2009
  9. 8/8 Document that merge strategies can now take their own optionsAvery Pennarun, Nov 26, 2009
  10. Junio C HamanoNov 26, 2009
  11. Junio C HamanoNov 26, 2009
  12. Junio C HamanoNov 26, 2009
  13. Junio C HamanoNov 26, 2009
  14. Avery PennarunNov 26, 2009
  15. Junio C HamanoNov 30, 2009
  16. Avery PennarunNov 30, 2009
  17. Junio C HamanoNov 30, 2009
  18. Junio C HamanoNov 30, 2009
  19. Avery PennarunNov 30, 2009
  20. Junio C HamanoNov 26, 2009
  21. Avery PennarunNov 26, 2009
  22. Junio C HamanoNov 26, 2009
  23. Nanako ShiraishiNov 26, 2009
  24. Junio C HamanoNov 26, 2009
  25. Nanako ShiraishiNov 26, 2009
  26. Avery PennarunNov 26, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.