Closed Bug 1375206 Opened 7 years ago Closed 3 years ago

Use a lower copy_threshold when doing blame

Categories

(Webtools :: Searchfox, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: billm, Unassigned)

References

Details

From Masayuki:

> https://searchfox.org/mozilla-central/source/layout/generic/nsFrameSelection.cpp
> This file was copied from dom/base/Selection.cpp and its unnecessary lines were
> removed (for separating the file to two files).
> The patch is here:
> https://bug1373999.bmoattachments.org/attachment.cgi?id=8878904
> 
> So, nsFrameSelection.cpp should be displayed with the blame of old Selection.cpp like hgweb.
> https://hg.mozilla.org/mozilla-central/annotate/464b2a3c25aa1065760d9ecbb0870bca4a66c62e/layout/generic/nsFrameSelection.cpp
> 
> However, searchfox shows all lines of it are changed by the patch. This is not useful information. Could you check it?

The problem is that Searchfox uses Git rather than Mercurial, and Git tries to infer file copies and renames rather than requiring the user to point them out. It uses a heuristic where a file is treated as copied only if 50% or more of the contents of the file are preserved. It looks like that's not true in this case. If I do |git show 083cd9d905c747cc195c1ece60202a68a1c99ed0| (which is the part 2 revision from bug 1373999) then all the lines in dom/base/Selection.cpp are shown as new. However, if I do |git show 083cd9d905c747cc195c1ece60202a68a1c99ed0 -C40|, then it recognizes that the file was copied from layout/generic/nsFrameSelection.cpp. The latter command only requires 40% of the file to be the same.

It probably makes sense to change Searchfox to use a lower copy threshold.

This is fixed now. We regenerated the blame repo with modified diff options and it can follow the history of nsFrameSelection all the way through the file copy.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.