In the patch for Bug 158819 (Attachment #281464 [details]), many methods are listed in the ChangeLog as having been modified when they were not. This appears to be a bug in prepare-ChangeLog that occurs when an adjacent method is deleted in full. See also: Bug 144829: prepare-ChangeLog lists renamed functions and methods as having been deleted Bug 148437: prepare-ChangeLog lists modified methods as having been deleted
Also, this issue appears to only happen on Subversion repositories. When I applied the patch in Bug 158819 (Attachment #281464 [details]) on a git-svn repository at r202384, then ran prepare-ChangeLog, I didn't get the extraneous functions listed in the commit log.
Related to this, we may want to consider using a better diff tool in svn-create-patch and in webkit-patch. There must be something written in a scripting language, so that it doesn't need compiling.
Some interesting options mentioned in discussion here: https://news.ycombinator.com/item?id=11915287
(In reply to comment #1) > Also, this issue appears to only happen on Subversion repositories. When I > applied the patch in Bug 158819 (Attachment #281464 [details]) on a git-svn > repository at r202384, then ran prepare-ChangeLog, I didn't get the > extraneous functions listed in the commit log. I have an untested hypothesis: What could be happening is that when prepare-ChangeLog tries to grab the "pristine" (unmodified) source to determine the line ranges for functions (to compare to the local modified copy), it's actually grabbing the trunk (-rHEAD) from the svn server, where line numbers have shifted since the local working copy's revision, and that causes prepare-ChangeLog to list methods that weren't actually changed. If this is the case, then we just need to check how prepare-ChangeLog is grating the pristine source version, and make sure it's grabbing the pristine source relative to the local working copy (not to trunk on the svn server).
(In reply to comment #1) > Also, this issue appears to only happen on Subversion repositories. When I > applied the patch in Bug 158819 (Attachment #281464 [details]) on a git-svn > repository at r202384, then ran prepare-ChangeLog, I didn't get the > extraneous functions listed in the commit log. Notice that prepare-ChangeLog's function overlap logic of assumes a unified diff with 0 lines of context. When using a Git checkout, prepare-ChangeLog generates such a diff by <https://trac.webkit.org/browser/trunk/Tools/Scripts/prepare-ChangeLog?rev=204544#L1973>. But when using a Subversion checkout, prepare-ChangeLog generates a unified diff with 3 lines of context per the default behavior of svn diff and by <https://trac.webkit.org/browser/trunk/Tools/Scripts/prepare-ChangeLog?rev=204544#L1970>.
*** This bug has been marked as a duplicate of bug 148437 ***
This issue doesn't look Duplicate of 148437 to me. Bug 148437 list modified methods incorrectly (as deleted), but this bug is about methods which were not at all modified. I hit this issue almost every single time while running prepare-ChangeLog (even when I do not delete any method). prepare-ChangeLog creates a lot more entries then the functions I modify. Usually all the nearby functions from the function which I modify are listed by prepare-ChangeLog as modified. Probably your logic about "unified diff with 3 lines of context" might explain it.
(In reply to comment #7) > This issue doesn't look Duplicate of 148437 to me. Bug 148437 list modified > methods incorrectly (as deleted), but this bug is about methods which were > not at all modified. > > I hit this issue almost every single time while running prepare-ChangeLog > (even when I do not delete any method). prepare-ChangeLog creates a lot more > entries then the functions I modify. Usually all the nearby functions from > the function which I modify are listed by prepare-ChangeLog as modified. > Probably your logic about "unified diff with 3 lines of context" might > explain it. I suspect that the root cause of both this bug and bug #148437 are the same. Therefore, I duped this bug to bug #148437. *** This bug has been marked as a duplicate of bug 148437 ***