Hi Duy, On Thu, 27 Jun 2019, Nguyễn Thái Ngọc Duy wrote: > Signed-off-by: Nguyễn Thái Ngọc Duy > --- This commit is _awfully_ short given that... > diff --git a/builtin/grep.c b/builtin/grep.c > index 580fd38f41..560051784e 100644 > --- a/builtin/grep.c > +++ b/builtin/grep.c > @@ -458,7 +458,8 @@ static int grep_submodule(struct grep_opt *opt, > object = parse_object_or_die(oid, oid_to_hex(oid)); > > grep_read_lock(); > - data = read_object_with_reference(&object->oid, tree_type, > + data = read_object_with_reference(&subrepo, > + &object->oid, tree_type, ... this change and... > &size, NULL); > grep_read_unlock(); > > @@ -623,7 +624,8 @@ static int grep_object(struct grep_opt *opt, const struct pathspec *pathspec, > int hit, len; > > grep_read_lock(); > - data = read_object_with_reference(&obj->oid, tree_type, > + data = read_object_with_reference(opt->repo, > + &obj->oid, tree_type, ... this change is totally not what would be intuitively the easiest: to use `the_repository` in all built-ins. It might take quite a lot of convincing that these changes are correct, in particular in light of the regressions introduced by the first iteration (to paraphrase Warren Buffet [*1*]: one slip in a patch series touching as central parts as this one will need a lot of time to restore trust in subsequent iterations' correctness.) In short: with such an empty commit message, this patch is no good. It's as if it was optimized to pass the test suite on Linux instead of a best effort to make the conversion as correct as you can make it. Ciao, Johannes Footnote *1*: https://www.forbes.com/sites/jamesberman/2014/04/20/the-three-essential-warren-buffett-quotes-to-live-by/