[Webkit-unassigned] [Bug 151300] REGRESSION(r8780): Backwards delete by word incorrectly appends deleted text to kill ring, should be prepend

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Nov 15 22:47:34 PST 2015


--- Comment #2 from Brian Burg <bburg at apple.com> ---
For posterity, this is how I was able to find the regression:


How I figured out the addToKillRing regression:

* unused parameter 'append', where did it come from?
* Initially searched commit logs for addToKillRing, too much unrelated refactoring.

* Used `git blame`, too many unrelated refactorings. Went to Google to find something that can search changes to a specific line rather than just the last line.

* found out about git pickaxe `git log -S "text"` which searches for increment or decrement to count of "text" occurences in a file because of a diff. This led me to a commit where addToKillRing was moved to a different directory in a massive reorg.

$ git log -p --oneline -S "addToKillRing" Source/WebCore/editing/ | grep -C5 addToKillRing

* found out about git pickaxe variant `git log -G "regex" which searches for any match to regex in diffs. This would let me find changes to the line that both include addToKillRing.

$ git log -p --oneline -G "addToKillRing\\(" WebCore | grep -C5 --null addToKillRing

* Looked for earliest result to see if it was regressed there. It was not.

* Earliest result is another refactor that changed call signature and name (from ObjC to C++). I continued searching for the ObjC function name.

$ git log -p --oneline -G "_deleteRange:" -- WebKit

* Narrow down just to the relevant arguments

$ git log --oneline -G "killRing:YES prepend:" -- WebKit

* Manually check the newest and oldest revision. The oldest (initial implementation) was correct.

* Start checking commits one-by-one from oldest to newest, found the regression after a few revisions. The trac revision is listed in the commit message after 'git-svn-id'.

You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20151116/77e2a1e5/attachment.html>

More information about the webkit-unassigned mailing list