Re: Not-quite-a-bug in pickaxe
- From
- Mikael Magnusson <mikachu@gmail.com>
- Date
- Nov 24, 2008, 15:08 UTC
- Message-ID
- <237967ef0811240708t58d48c84ud0626ba3aaed47b6@mail.gmail.com>
- In-Reply-To
- <alpine.DEB.1.00.0811241238450.30769@pacific.mpi-cbg.de>
2008/11/24 Johannes Schindelin <Johannes.Schindelin@gmx.de>:
> Hi people, > > I do not know if I hit that behavior before,
I'm pretty sure it has, http://thread.gmane.org/gmane.comp.version-control.git/100113/focus=100115 (at least i think that's the same case?)
Show 17 quoted lines
> but now it hit me big time: > if a commit moves a certain string from one place to another, "git log > -S<string>" does not pick up that commit. The code responsible for this > is in diffcore-pickaxe.c: > > else if (!diff_unmodified_pair(p) && > contains(p->one, needle, len, regexp) != > contains(p->two, needle, len, regexp)) > has_changes++; > > Basically, the "contains()" method says how often the needle was found, > and pickaxe just assumes that a move of a string is not interesting > enough. > > Now, this behavior is probably intended, as searching files is much > cheaper than generating the diffs between them, yet it is something you'll > have to keep in mind when using "-S".
-- Mikael Magnusson