Skip to content

Commit

Permalink
rename detection with -M100 means "exact renames only".
Browse files Browse the repository at this point in the history
When the user is interested in pure renames, there is no point
doing the similarity scores.  This changes the score argument
parsing to special case -M100 (otherwise, it is a precision
scaled value 0 <= v < 1 and would mean 0.1, not 1.0 --- if you
do mean 0.1, you can say -M1), and optimizes the diffcore_rename
transformation to only look at pure renames in that case.

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed Nov 21, 2005
1 parent 88b5a74 commit 9f70b80
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 0 deletions.
4 changes: 4 additions & 0 deletions diff.c
Original file line number Diff line number Diff line change
Expand Up @@ -853,6 +853,10 @@ static int parse_num(const char **cp_p)
}
*cp_p = cp;

/* special case: -M100 would mean 1.0 not 0.1 */
if (num == 100 && scale == 1000)
return MAX_SCORE;

/* user says num divided by scale and we say internally that
* is MAX_SCORE * num / scale.
*/
Expand Down
3 changes: 3 additions & 0 deletions diffcore-rename.c
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,9 @@ void diffcore_rename(struct diff_options *options)
if (rename_count == rename_dst_nr)
goto cleanup;

if (minimum_score == MAX_SCORE)
goto cleanup;

num_create = (rename_dst_nr - rename_count);
num_src = rename_src_nr;
mx = xmalloc(sizeof(*mx) * num_create * num_src);
Expand Down

0 comments on commit 9f70b80

Please sign in to comment.