<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&#64;apple.com" title="Brian Burg &lt;bburg&#64;apple.com&gt;"> <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 &quot;text&quot;` which searches for increment or decrement to count of &quot;text&quot; 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 &quot;addToKillRing&quot; Source/WebCore/editing/ | grep -C5 addToKillRing

* found out about git pickaxe variant `git log -G &quot;regex&quot; 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 &quot;addToKillRing\\(&quot; 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 &quot;_deleteRange:&quot; -- WebKit

* Narrow down just to the relevant arguments

$ git log --oneline -G &quot;killRing:YES prepend:&quot; -- 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>