Subject: Re: [RFC] [PATCH] remote: add new --fetch option for set-url

From: Jeff King <[email-masked]>
Date: Mon, 24 Nov 2014 17:54:57 -0500

On Mon, Nov 24, 2014 at 11:47:30PM +0100, Peter Wu wrote:

> > Right. My original complaint was only that "--fetch" is not as
> > orthogonal to "--push" (and an optionless set-url) as it could be. I
> > think the alternatives for going forward are basically:
> > 
> >   1. Name it something besides --fetch (but that's rather clunky).
> 
> It is not orthogonal to --push in the config, but the behavior exposed
> to the user is orthogonal unless I am missing something?

My complaint is that you have three possible options to provide: --push,
--fetch, or no option at all. And "--fetch" sometimes behaves like no
option, and sometimes not. Which is the confusing/non-orthogonal part.

> I can understand that --fetch sounds a bit weird, what about this
> natural translation:
> 
>     "git remote: set the URL (only the fetch one) for NAME to URL"
>     git remote set-url --only=fetch NAME URL
> 
>     "git remote: set the URL (only the push one) for NAME to URL"
>     git remote set-url --only=push NAME URL
>     (obsoletes --push)
> 
>     "git remote: set the URL (both) for NAME to URL"
>     git remote set-url --only=both NAME URL
>     (it would be nice if --only=both (weird!) can be removed in the
>     future such that the option is more natural)
> 
>     "git remote: set the URL for NAME to URL"
>     git remote set-url NAME URL
>     (current behavior: YOU git guru knows what I do right?)

Yeah, I think that addresses my concern (because it explicitly leaves
no-option as a historical curiosity, and not as an implicit version of
"--both").

> >   3. Live with it. Probably address the weirdness in the documentation.
> > 
> >   4. Do nothing, drop the patch.
> > 
> > I think I'd be OK with (3), with an appropriate documentation update.
> 
> I prefer 1 for now as it avoids the extra manual action I have to take
> when changing URLs.

I'm not sure if I was clear on (3), but "live with it" was "live with
your original patch". Which I think you would also be happy with.

-Peff