I just found a case where grep and git grep yield different results. Inside the ixgbe directory of the Linux kernel I did:
$ grep enter_lplu *.[ch]
And got the following:
ixgbe_main.c: if (adapter->hw.phy.ops.enter_lplu) {
ixgbe_main.c: adapter->hw.phy.ops.enter_lplu(&adapter->hw);
ixgbe_type.h: s32 (*enter_lplu)(struct ixgbe_hw *);
ixgbe_x550.c:/** ixgbe_enter_lplu_x550em - Transition to low power states
ixgbe_x550.c:static s32 ixgbe_enter_lplu_t_x550em(struct ixgbe_hw *hw)
ixgbe_x550.c: phy->ops.enter_lplu = ixgbe_enter_lplu_t_x550em;
But when I did:
$ git grep enter_lplu
I got:
ixgbe_main.c: if (adapter->hw.phy.ops.enter_lplu) {
ixgbe_main.c: adapter->hw.phy.ops.enter_lplu(&adapter->hw);
ixgbe_type.h: s32 (*enter_lplu)(struct ixgbe_hw *);
ixgbe_x550.c:/** ixgbe_enter_lplu_x550em - Transition to low power states
ixgbe_x550.c:static s32 ixgbe_enter_lplu_t_x550em(struct ixgbe_hw *hw)
You can see that git grep missed the line in ixgbe_x550.c that had two hits on
the string.
This was with git 2.1.0 in Fedora 21. I use git grep a lot and never noticed a
problem before. I just updated my Fedora 21 system yesterday, so I have to
figure that has something to do with it. I checked and git didn't get updated,
so I figure it must be a library that is really broken.
I see in my update log that pcre was updated to:
pcre.x86_64 0:8.35-12.fc21
pcre-devel.x86_64 0:8.35-12.fc21
Yet the grep command is unaffected.
--
Mark Rustad, Networking Division, Intel Corporation
signature.asc
Description: Message signed with OpenPGP using GPGMail

