git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Peter Wu <peter@lekensteyn.nl>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jeff King <peff@peff.net>, git@vger.kernel.org
Subject: Re: [RFC] [PATCH] remote: add new --fetch option for set-url
Date: Mon, 24 Nov 2014 22:45:49 +0100	[thread overview]
Message-ID: <1628833.9HksdDrMW8@al> (raw)
In-Reply-To: <12667112.uUCmIHHWmi@al>

ping?

I asked around and the people who know of `git remote` fell in these two
categories:

 - those who know of this "bug" and then first set the fetch URL and
   then the push URL.
 - those who did not expect the current behavior.

The command 'git remote set-url NAME URL' reads as "set the URL(s) for
remote NAME to URL". Currently it means "set the fetch (and push) URL of
remote NAME to URL" (depending on whether pushurl is set).

I propose to add the option --fetch next to --push with the meaning "set
the fetch/push URL of remote NAME to URL". Then --fetch --push means
"set the fetch and push URL of remote NAME to URL". In a future git
version, this could be made the default option to avoid surprises (which
would be backwards incompatible though).

As for the changelog entry,

    The "git remote set-url" command now allows you to change just the
    fetch URL without modifying the push URL using the new --fetch
    option. For symmetry with the --push option.

("symmetry" in the eyes of the user, not how it is implemented in the
git config.)

Opinions?

On Wednesday 19 November 2014 22:28:35 Peter Wu wrote:
> On Wednesday 19 November 2014 13:18:56 Junio C Hamano wrote:
> > Junio C Hamano <gitster@pobox.com> writes:
> > > Jeff King <peff@peff.net> writes:
> > > If you are fetching from somebody else and then pushing into your
> > > own publishing repository (i.e. fork of that upstream), why isn't
> > > the sequence of event like this, instead?
> > >
> > >     $ git clone $upstream
> > >     $ browser github.com
> > >     ... fork upstream to your own publishing repository ...
> > >     $ git remote set-url --push mine <url for your publish repo>
> > >
> > > Isn't this one of those bad workflows encouraged by GitHub, for
> > > which you guys have to be punished ;-)?
> 
> For "forks", it usually goes like this:
> 
>     git clone $upstream
>     ... realizes that is has a bug which I want to fix ...
>     ... creates a new repo ...
>     git remote rename origin upstream
>     git remote add origin git@$personal_repo
>     # "--fetch" is what I need
>     git remote add --fetch https://$personal_repo
> 
> I often start by entering/copying the ssh URL which is what I need for
> pushing. Later ssh-agent forget about my key and I realize that push
> works fine over https, so would like to set that... only to observe that
> is not possible in an straightforward way through 'git remote'.
> 
> > Coming back to the topic, how common would this "oops, I cloned via
> > a wrong transport" be?  I am not opposed to giving a recovery method
> > for gotcha that does not happen very often, but if such an addition
> > adds undue confusion factor for people who use "set-url" for more
> > common cases, that would be a bad trade-off.
> 
> Well, people rarely need to use 'git remote' except when, well, they
> need to modify the remotes. Where does the confusion come from? I might
> be biased now that I know the internals. Maybe the https/ssh case above
> needs to be mentioned in the documentation? What do you think of the
> updated documentation by the way?

  reply	other threads:[~2014-11-24 21:46 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-19 15:18 [RFC] [PATCH] remote: add new --fetch option for set-url Peter Wu
2014-11-19 19:08 ` Jeff King
2014-11-19 19:42   ` Peter Wu
2014-11-19 20:17     ` Jeff King
2014-11-19 20:48       ` Peter Wu
2014-11-19 20:29   ` Junio C Hamano
2014-11-19 20:52     ` Peter Wu
2014-11-19 21:00       ` Junio C Hamano
2014-11-19 20:58   ` Junio C Hamano
2014-11-19 21:18     ` Junio C Hamano
2014-11-19 21:28       ` Peter Wu
2014-11-24 21:45         ` Peter Wu [this message]
2014-11-24 22:04           ` Junio C Hamano
2014-11-24 22:16             ` Peter Wu
2014-11-24 22:22               ` Jeff King
2014-11-24 22:47                 ` Peter Wu
2014-11-24 22:54                   ` Jeff King
2014-11-24 23:05                     ` Junio C Hamano
2014-11-24 23:27                     ` Peter Wu
2014-11-25  4:08                       ` Jeff King
2014-11-25  4:55                         ` Junio C Hamano
2014-11-25  5:01                           ` Jeff King
     [not found]                             ` <CAPc5daWh4hnKsTMpaW-TvCmVDfU+rzCezrAHcLgXDG6RVvzXHA@mail.gmail.com>
2014-11-25 11:43                               ` Peter Wu
2014-11-25 11:36                         ` Peter Wu
2014-11-29 13:31                       ` Philip Oakley
2014-12-02 17:45                         ` Peter Wu
2014-12-02 23:50                           ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1628833.9HksdDrMW8@al \
    --to=peter@lekensteyn.nl \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).