I can reproduce this.
Seems like the 'getattr' is found if we specify the file on the command line but for some reason its missed when we don't do that.
[bzr-diff-revid]% bzr cat -r -1 __init__.py | grep getattr
if getattr(tree, 'get_revision_id', None) is None:
[bzr-diff-revid]% bzr grep -r -1 getattr
[bzr-diff-revid]% bzr grep -r -2 getattr
[bzr-diff-revid]% bzr grep -r -2 getattr __init__.py
__init__.py~3: if getattr(tree, 'get_revision_id', None) is None:
[bzr-diff-revid]% bzr grep -r -1 getattr __init__.py
__init__.py~4: if getattr(tree, 'get_revision_id', None) is None:
[bzr-diff-revid]% bzr grep -r last:1 getattr __init__.py
__init__.py~4: if getattr(tree, 'get_revision_id', None) is None:
[bzr-diff-revid]% bzr grep -r last:1 getattr
[bzr-diff-revid]%
I can reproduce this.
Seems like the 'getattr' is found if we specify the file on the command line but for some reason its missed when we don't do that.
[bzr-diff-revid]% bzr cat -r -1 __init__.py | grep getattr
if getattr(tree, 'get_revision_id', None) is None:
[bzr-diff-revid]% bzr grep -r -1 getattr
[bzr-diff-revid]% bzr grep -r -2 getattr
[bzr-diff-revid]% bzr grep -r -2 getattr __init__.py
__init__.py~3: if getattr(tree, 'get_revision_id', None) is None:
[bzr-diff-revid]% bzr grep -r -1 getattr __init__.py
__init__.py~4: if getattr(tree, 'get_revision_id', None) is None:
[bzr-diff-revid]% bzr grep -r last:1 getattr __init__.py
__init__.py~4: if getattr(tree, 'get_revision_id', None) is None:
[bzr-diff-revid]% bzr grep -r last:1 getattr
[bzr-diff-revid]%