Re: [PATCH 04/12] remote.c: provide per-branch pushremote name
On Thu, May 7, 2015 at 5:38 AM, Jeff King <peff@peff.net> wrote:
Show 16 quoted lines
> On Tue, May 05, 2015 at 03:48:29PM -0400, Eric Sunshine wrote:
>
>> > Yeah, it's just that it goes in the opposite direction I was trying for,
>> > which is to have as little code as possible in the wrapper functions (in
>> > fact, I think after my changes you could even bump the read_config()
>> > call into remote_get_1; before my changes, it depended on the pushremote
>> > config being set before the call).
>>
>> I also noticed that read_config() could be moved into remote_get_1().
>> In fact, with that change, then the wrappers really do collapse nicely
>> to 1-liners, so the "clever" function pointer approach probably is
>> cleaner; and it's nicely generalized over the previous round with the
>> boolean argument to remote_get_1().
>
> I ended up with this patch, which will go right after the one we're
> discussing:
Show 44 quoted lines
> -- >8 --
> Subject: remote.c: hoist read_config into remote_get_1
>
> Before the previous commit, we had to make sure that
> read_config() was called before entering remote_get_1,
> because we needed to pass pushremote_name by value. But now
> that we pass a function, we can let remote_get_1 handle
> loading the config itself, turning our wrappers into true
> one-liners.
>
> Signed-off-by: Jeff King <peff@peff.net>
> ---
> remote.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/remote.c b/remote.c
> index a91d063..e6b29b3 100644
> --- a/remote.c
> +++ b/remote.c
> @@ -718,6 +718,8 @@ static struct remote *remote_get_1(const char *name,
> struct remote *ret;
> int name_given = 0;
>
> + read_config();
> +
> if (name)
> name_given = 1;
> else
> @@ -741,13 +743,11 @@ static struct remote *remote_get_1(const char *name,
>
> struct remote *remote_get(const char *name)
> {
> - read_config();
> return remote_get_1(name, remote_for_branch);
> }
>
> struct remote *pushremote_get(const char *name)
> {
> - read_config();
> return remote_get_1(name, pushremote_for_branch);
> }
>
> --
> 2.4.0.488.gf55b16a