# Unknown option for merge-recursive: -Xdiff-algorithm=minimal

2 messages from 2013-09-24 to 2013-09-24. Participants: Luke Noel-Storr, John Keeping.
Thread: https://gitlist.dev/t/35005

## Luke Noel-Storr, 2013-09-24 09:00

Subject: Unknown option for merge-recursive: -Xdiff-algorithm=minimal
Message-ID: <E523B437-A9D4-40DD-9720-C419CB6AC016@integrate.co.uk>
URL: https://gitlist.dev/e/E523B437-A9D4-40DD-9720-C419CB6AC016%40integrate.co.uk

```
Hi,

I'm trying to use the diff-algorithm option for recursive merge, but get the above error.  I've tried various different ways of specifying the option, but none work.

To try and find what the correct syntax is I tried peeping into the source code, and it looks like it may actually be an error in the code.

This is from merge-recursive.c line 2072:

	else if (!strcmp(s, "diff-algorithm=")) {
		long value = parse_algorithm_value(s+15);
		if (value < 0)
			return -1;
		/* clear out previous settings */
		DIFF_XDL_CLR(o, NEED_MINIMAL);
		o->xdl_opts &= ~XDF_DIFF_ALGORITHM_MASK;
		o->xdl_opts |= value;
	}

I believe !strcmp(s, "diff-algorithm=") should actually be !prefixcmp(s, "diff-algorithm=")

Could someone confirm this is a bug, and is there any other way I can specify the diff algorithm?


Many Thanks,

Luke Noel-Storr.

```

## John Keeping, 2013-09-24 10:01

Subject: Re: Unknown option for merge-recursive: -Xdiff-algorithm=minimal
Message-ID: <20130924100129.GA27238@serenity.lan>
URL: https://gitlist.dev/e/20130924100129.GA27238%40serenity.lan
In-Reply-To: <E523B437-A9D4-40DD-9720-C419CB6AC016@integrate.co.uk>

```
On Tue, Sep 24, 2013 at 10:00:30AM +0100, Luke Noel-Storr wrote:
> I'm trying to use the diff-algorithm option for recursive merge, but
> get the above error.  I've tried various different ways of specifying
> the option, but none work.
> 
> To try and find what the correct syntax is I tried peeping into the
> source code, and it looks like it may actually be an error in the
> code.
> 
> This is from merge-recursive.c line 2072:
> 
> 	else if (!strcmp(s, "diff-algorithm=")) {
> 		long value = parse_algorithm_value(s+15);
> 		if (value < 0)
> 			return -1;
> 		/* clear out previous settings */
> 		DIFF_XDL_CLR(o, NEED_MINIMAL);
> 		o->xdl_opts &= ~XDF_DIFF_ALGORITHM_MASK;
> 		o->xdl_opts |= value;
> 	}
> 
> I believe !strcmp(s, "diff-algorithm=") should actually be !prefixcmp(s, "diff-algorithm=")
> 
> Could someone confirm this is a bug, and is there any other way I can specify the diff algorithm?

I think you're right - this should be prefixcmp.

The simplest thing to do would be to patch it locally and run your own
build - Git's Makefile installs in your home directory by default, so
providing $HOME/bin is on your path, "make install" will just give you
something that works.

Of course, you should then submit the patch here ;-)

```
