On Fri, Dec 14, 2018 at 11:09:53AM +0900, Junio C Hamano wrote: > > diff --git a/ls-refs.h b/ls-refs.h > > index b62877e8da..da26fc9824 100644 > > --- a/ls-refs.h > > +++ b/ls-refs.h > > @@ -4,7 +4,8 @@ > > struct repository; > > struct argv_array; > > struct packet_reader; > > -extern int ls_refs(struct repository *r, struct argv_array *keys, > > +extern int ls_refs(struct repository *r, const char *config_context, > > + struct argv_array *keys, > > struct packet_reader *request); > > One thing I wonder is if we want to pass the whole *_opt thing, > instead of only one field out of it. I actually started by doing that, but "struct serve_options" is not currently known by ls-refs.c, upload-pack.c, etc. So they'd have to start including "serve.h". I don't think that's the end of the world, but it felt like a funny mutual circular to me (my mental model now is that ls-refs, upload-pack, etc are low-level commands, tied together by the "serve" stuff). -Peff