I know we talked about this being 90/10, but I wonder if that's still a good decision.  Most of the test scores dropped by a good amount.  In git content is (mostly) king.  I wonder if we weakened the content signal too much by making it only 90%.

I just checked the C Git source code, I think they are using under 1% for the name similarity score.

Maybe we compute this as 99%/1%:

  (contentScore * 99 + nameScore * 1) / 100

Which means we actually have a lot of rounding error.  Since both scores are currently in the [0,100] range maybe we boost them to be in the [0,10000] range.  Combined they still won't overflow an int but we can carry some more precision into the final score computation so that a near tie at the content level can be broken by a strong name similarity.

I would modify the SimilarityIndex.score() method to take a base parameter, that is, how many steps the score range should occupy between [0, base].  Then you can pass in 10000 here and make it clear the score is out of 10000 rather than 100 for the content.