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:27 UTC
Message-ID
<Pine.LNX.4.64.0706250026400.4059@racer.site>
In-Reply-To
<Pine.LNX.4.64.0706250021250.4059@racer.site>
Hi,
On Mon, 25 Jun 2007, Johannes Schindelin wrote:
Show 28 quoted lines
> On Mon, 25 Jun 2007, Ren� Scharfe wrote:
> 
> > 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.
Just ignore that, please.
> Besides, AFAIR p->score is not even calculated if the files are identical, 
> because that hits a different code path.
But this still holds true.

Ciao, Dscho

Previous: Johannes SchindelinNext: René Scharfe
Message 3 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.