[PATCH 0/9] respect binary attribute in grep

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[+cc Thomas, as I am mangling some of his recent work with my
     refactoring]

On Wed, Feb 01, 2012 at 07:52:09PM -0500, Jeff King wrote:

> > Hrm, I would have expected a patch that turns "const char *name" into a
> > structure that has name and drv as its members, so that later we can tell
> > the function more about the nature of the contents. Or a separate pointer
> > to drv in place of your "binary" flag word.
> [...]
> I'll take a look at re-working it that way.

Thanks for a dose of sanity. The result turned out much easier to read
(and explain in the commit messages, as it was simple to break into
smaller commits). In particular, the "don't read binary-marked files at
all with -I" optimization became very natural.

I implemented all of the other optimizations I mentioned except the
"only stream the first few bytes when auto-detecting binary-ness" one.
However, it should be easy to do on top of these changes. I need to
re-visit the similar change to diff_filespec_is_binary, and I'll do both
at the same time.

The patches are:

  [1/9]: grep: make locking flag global
  [2/9]: grep: move sha1-reading mutex into low-level code
  [3/9]: grep: refactor the concept of "grep source" into an object
  [4/9]: convert git-grep to use grep_source interface
  [5/9]: grep: drop grep_buffer's "name" parameter
  [6/9]: grep: cache userdiff_driver in grep_source

    These are all refactoring that should have no behavior change.

  [7/9]: grep: respect diff attributes for binary-ness

    This is the point of the series. :)

  [8/9]: grep: load file data after checking binary-ness
  [9/9]: grep: pre-load userdiff drivers when threaded

    And these two are simple optimizations.

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]