git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Paolo Bonzini <bonzini@gnu.org>
Cc: git@vger.kernel.org, spearce@spearce.org, gitster@pobox.com,
	johannes.schindelin@gmx.de, srb@cuci.nl
Subject: Re: [PATCH 0/7] limit the usage of the default remote "origin" to the minimum
Date: Tue, 29 Apr 2008 15:35:36 -0400	[thread overview]
Message-ID: <20080429193536.GA19340@sigill.intra.peff.net> (raw)
In-Reply-To: <cover.1209391614.git.bonzini@gnu.org>

On Mon, Apr 28, 2008 at 05:23:53PM +0200, Paolo Bonzini wrote:

> Patches 1 to 4 deal with "git push".  The problem here is that the
> "magic" default operation ("git push sends to origin all refs that
> are already present there"), as of new, cannot be explained in the
> configuration, and this is fixed by patches 1 and 2.  Patch 1 adds a
> special push refspec meaning "consider all refs already on the remote",
> and patch 2 makes git-clone add one such line when it creates the
> origin remote.

I like patches 1 and 2. The principle of "remove defaults from code, and
put them into the automatically generated config file" makes sense to
me. It gives users an easy place to look to understand and change such
behavior. So even without the rest of the patches, I think this is an
improvement.

> Patch 3 could also be split out of this series.  It adds to "git-remote
> add" a new --push option, that sets up a push refspec for the newly
> created remote.

This feels a little wrong, since we treat push and fetch lines
differently. That is, I can add just a fetch ("git remote add"), or both
("git remote add --push"), but not just a push. It seems like the
concepts should be orthogonal to "git remote" (as they are in the config
file).

> Patch 4 is a reworking of my previous patch.  Instead of having "git
> push" push to "all mirrors plus the magic origin branch", it will
> push to "all remotes having a push refspec".  In the future, this
> will always include the origin branch because of patch 2, while
> right now the origin branch is still used if no remote has a
> push refspec (for backwards compatibility -- more discussion in the
> patch log message).
>
> This patch may cause incompatibilities to be warned about in
> the release notes.  Luckily, these incompatibilities only affect
> users that already know their way in .git/config, because no porcelain
> command creates push refspecs.

I think you understand the compatibility issues, but I think it needs to
be not "warned in the release notes" but "warned in the release notes,
followed by a period of adjustment, and then the change". And maybe it
would even make sense to wait for a larger-number version change (like
1.6.0).

> Patches 5 and 6 affect "git pull".  Pulling uses the magic origin branch
> less often, because branch.*.remote already establishes a saner default.
> Therefore, here we can actually warn and deprecate the misfeature for
> real (patch 6).  Patch 5 however is still needed, so that "git pull"
> itself decides when to use the magic "origin" branch instead of making
> the decision in "git fetch".

I agree that patch 5 is a reasonable cleanup, regardless.

I'm not sure about patch 6. What are the cases that can trigger this? I
assume people still with ancient .git/remotes files? Are those actually
deprecated?

> Finally, patch 7 affects "git fetch".  As hinted earlier, I chose to
> duplicate the functionality already present in "git remote update"
> (for the case where remotes are not grouped), but the code is much
> simpler so there is no incentive (at least for now) in borrowing code
> from "git remote update" into "git fetch"---actually, as a cleanup
> it is maybe possible to borrow code in the other direction.

Again, I like this behavior just fine, but it probably needs a warning
period and a major version bump.

> "BTW, I find myself decreasingly using "git fetch" in favor of "git
>  remote update" which handles fetching from multiple remotes."
> 	The series remove the need to switch from "git fetch" to
> 	"git remote update" as one learns the power of DVCS.

This was from me, and I do like this behavior better.

-Peff

  parent reply	other threads:[~2008-04-29 19:36 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-26  7:31 [PATCH resend] make "git push" update origin and mirrors, "git push --mirror" update mirrors Paolo Bonzini
2008-04-26 17:01 ` Shawn O. Pearce
2008-04-26 17:46   ` Junio C Hamano
2008-04-27  4:30     ` Shawn O. Pearce
2008-04-27  4:40       ` Shawn O. Pearce
2008-04-27  5:23         ` Junio C Hamano
2008-04-27 17:34           ` Shawn O. Pearce
2008-04-27 20:13             ` Junio C Hamano
2008-04-27 20:22               ` Paolo Bonzini
2008-04-28  1:26                 ` Jeff King
2008-04-28  5:07                   ` Paolo Bonzini
2008-04-28  9:09                     ` Jeff King
2008-04-28  9:11                       ` Jeff King
2008-04-28  9:19                         ` Paolo Bonzini
2008-04-28 10:33                           ` Johannes Schindelin
2008-04-28 11:24                             ` Paolo Bonzini
2008-04-28 11:57                               ` Johannes Schindelin
2008-04-28  3:32               ` Shawn O. Pearce
2008-04-28  5:03                 ` Paolo Bonzini
2008-04-28  6:08                 ` Stephen R. van den Berg
2008-04-28  1:21             ` Jeff King
2008-04-27  9:03         ` Paolo Bonzini
2008-04-27  7:23   ` Paolo Bonzini
2008-04-28 15:32 ` [PATCH 0/7] limit the usage of the default remote "origin" to the minimum Paolo Bonzini
2008-04-28 15:32   ` [PATCH 1/7] add special "matching refs" refspec Paolo Bonzini
2008-04-28 15:32     ` [PATCH 2/7] add push line in git-clone Paolo Bonzini
2008-04-28 15:32       ` [PATCH 3/7] Add a --push option to "git-remote add" Paolo Bonzini
2008-04-28 15:32         ` [PATCH 4/7] make "git push" update all push repositories Paolo Bonzini
2008-04-28 15:32           ` [PATCH 5/7] don't rely on zero-argument "git fetch" from within git pull Paolo Bonzini
2008-04-28 15:32             ` [PATCH 6/7] warn on "git pull" without a given branch.<name>.remote value Paolo Bonzini
2008-04-28 15:32               ` [PATCH 7/7] make "git fetch" update all fetch repositories Paolo Bonzini
2008-04-28 18:10                 ` Alex Riesen
2008-04-28 18:19                   ` Paolo Bonzini
2008-04-28 21:33                     ` Alex Riesen
2008-04-29  4:52                       ` Paolo Bonzini
2008-04-29  5:38                         ` Alex Riesen
2008-04-29  6:05                           ` Andreas Ericsson
2008-04-29  6:55                             ` Paolo Bonzini
2008-04-29 16:13                               ` Johannes Schindelin
2008-04-29 16:40                                 ` Paolo Bonzini
2008-04-29 20:34                                   ` Alex Riesen
2008-04-29  6:50                           ` Paolo Bonzini
2008-04-29  7:16                             ` Andreas Ericsson
2008-04-29  7:57                               ` Paolo Bonzini
2008-04-29  8:48                                 ` Andreas Ericsson
2008-04-29  9:02                                   ` Paolo Bonzini
2008-04-29 21:08                                   ` しらいしななこ
     [not found]                                   ` <200804292108.m3TL8moV011790@mi1.bluebottle.com>
2008-04-29 21:21                                     ` Paolo Bonzini
2008-04-29 22:21                                       ` Johannes Schindelin
2008-04-29 20:44                                 ` Alex Riesen
2008-04-29 21:15                                   ` Paolo Bonzini
2008-04-29 21:33                                     ` Alex Riesen
2008-04-29 21:41                                       ` Paolo Bonzini
2008-04-29 21:53                                         ` Alex Riesen
2008-04-29 22:26                                         ` Johannes Schindelin
2008-04-29 23:02                                           ` Jeff King
2008-04-29 23:17                                             ` Junio C Hamano
2008-04-30  5:28                                               ` Paolo Bonzini
2008-04-29 21:39                                   ` Johannes Schindelin
2008-04-29 20:24                             ` Alex Riesen
2008-05-01  6:28       ` [PATCH 2/7] add push line in git-clone Junio C Hamano
2008-05-06  8:37         ` Paolo Bonzini
2008-05-14 15:20           ` Paolo Bonzini
2008-05-14 18:16             ` Junio C Hamano
2008-05-14 19:07               ` Paolo Bonzini
2008-05-14 19:23                 ` Junio C Hamano
2008-05-14 19:40                   ` Paolo Bonzini
2008-04-30  9:23     ` [PATCH 1/7] add special "matching refs" refspec Junio C Hamano
2008-04-30  9:35       ` Paolo Bonzini
2008-04-29 19:35   ` Jeff King [this message]
2008-04-29 21:42     ` [PATCH 0/7] limit the usage of the default remote "origin" to the minimum Alex Riesen
2008-04-29 21:56     ` Junio C Hamano
2008-04-29 23:12       ` Jeff King
2008-04-30  5:24         ` Paolo Bonzini

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=20080429193536.GA19340@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=bonzini@gnu.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=johannes.schindelin@gmx.de \
    --cc=spearce@spearce.org \
    --cc=srb@cuci.nl \
    /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).