<html>
<head>
<base href="https://bugs.webkit.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - REGRESSION(r8780): Backwards delete by word incorrectly appends deleted text to kill ring, should be prepend"
href="https://bugs.webkit.org/show_bug.cgi?id=151300#c2">Comment # 2</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - REGRESSION(r8780): Backwards delete by word incorrectly appends deleted text to kill ring, should be prepend"
href="https://bugs.webkit.org/show_bug.cgi?id=151300">bug 151300</a>
from <span class="vcard"><a class="email" href="mailto:bburg@apple.com" title="Brian Burg <bburg@apple.com>"> <span class="fn">Brian Burg</span></a>
</span></b>
<pre>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'.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>