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

Re: [PATCH] diff: round down similarity index

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Jun 24, 2007, 23:25 UTC
Message-ID
<Pine.LNX.4.64.0706250021250.4059@racer.site>
In-Reply-To
<467EEEE6.3090100@lsrfire.ath.cx>
Hi,
On Mon, 25 Jun 2007, René Scharfe wrote:
Show 18 quoted lines
> Rounding down the printed (dis)similarity index allows us to use
> "100%" as a special value that indicates complete rewrites and
> fully equal file contents, respectively.
>
> [...]
> 
> +static int similarity_index(struct diff_filepair *p)
> +{
> +	int result = p->score * 100.0 / MAX_SCORE;
> +
> +	/* Paranoia: guard against floating point rounding errors. */
> +	if (p->score == MAX_SCORE)
> +		result = 100;
> +	else if (result == 100)
> +		result = 99;
> +
> +	return result;
> +}

That's not even properly rounding down. The correct formula (correct in the sense for "what you want") would be

	p->score * 100.0 / MAX_SCORE

if p->score == MAX_SCORE, iff the files are identical. And yes, that is the old formula.

Besides, AFAIR p->score is not even calculated if the files are identical, because that hits a different code path.

Ciao, Dscho

Previous: René ScharfeNext: Johannes Schindelin
Message 2 of 8 in “diff: round down similarity index”
  1. diff: round down similarity indexRené Scharfe, Jun 24, 2007
  2. Johannes SchindelinJun 24, 2007
  3. Johannes SchindelinJun 24, 2007
  4. René ScharfeJun 25, 2007
  5. David KastrupJun 25, 2007
  6. Junio C HamanoJun 25, 2007
  7. diff: round down similarity index, take 2René Scharfe, Jun 25, 2007
  8. René ScharfeJun 25, 2007

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.