git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: GIT 0.99.7d, and end of week status.

From
Petr Baudis <pasky@suse.cz>
Date
Sep 26, 2005, 19:10 UTC
Message-ID
<20050926191037.GD26340@pasky.or.cz>
In-Reply-To
<7v7jd4n22i.fsf@assigned-by-dhcp.cox.net>

Dear diary, on Mon, Sep 26, 2005 at 01:46:13AM CEST, I got a letter where Junio C Hamano <junkio@cox.net> told me that...

Show 23 quoted lines
> Tom Prince <tom.prince@ualberta.net> writes:
> 
> >> When you already have a repository to track git.git, I would
> >> recommend to have something like this in .git/remote/origin:
> >>
> >>     URL: http://kernel.org/pub/scm/git/git.git
> >>     Pull: master:origin maint:maint +pu:pu
> >>
> >
> > A warning when you do this. If you say 
> >
> >   git pull origin
> >
> > then your master will be updated with an octopus merge of the three heads.
> 
> Ahhhhhhhh.  That is true.  I always do "git fetch" and never do
> "git pull" against anything but a local repository, heads
> explicitly specified.  You are right.  The defaulting behaviour
> is incredibly broken.
> 
> Do people agree it is a good idea to change the "git pull
> origin" to mean "fetch all the default refs specified on Pull:
> lines, and merge only the first one into the current branch"?

I don't like that, the notion that you are fetching different stuff that you are merging then seems quite confusing to me. But fetching just the first revision will be confusing too. Either way, git-pull won't be equivalent to git-fetch && git-merge (or git-resolve or whatever is the core porcelain command) anymore. Well, the remotes stuff never got close to my heart.

One alternative I can think of is, in case there are multiple heads, require the user to explicitly specify the head he wants (origin#maint). This comes from the idea that multi-head remotes are there really primarily for fetching, not for pulling. There is also no potential for confusion. In addition, there might another line "Default" in the remote file, which could specify the default choice. It's just that choosing the first one implicitly makes me a bit nervous and has potential for bad mistakes. At least for Cogito, I would be reluctant to use it.

git-pull --merge-all or something to still do the octopus merge might be useful in some cases (or as well might not - perhaps the best strategy is to let whoever cares make a patch ;).

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
VI has two modes: the one in which it beeps and the one in which
it doesn't.
Previous: Junio C HamanoNext: Junio C Hamano
Message 10 of 23 in “GIT 0.99.7d, and end of week status.”
  1. Junio C HamanoSep 25, 2005
  2. Alan ChandlerSep 25, 2005
  3. Junio C HamanoSep 25, 2005
  4. Alan ChandlerSep 25, 2005
  5. Junio C HamanoSep 26, 2005
  6. Alan ChandlerSep 26, 2005
  7. Junio C HamanoSep 26, 2005
  8. Tom PrinceSep 25, 2005
  9. Junio C HamanoSep 25, 2005
  10. Petr BaudisSep 26, 2005
  11. Junio C HamanoSep 26, 2005
  12. Petr BaudisSep 27, 2005
  13. Matthias UrlichsSep 29, 2005
  14. Junio C HamanoSep 29, 2005
  15. Jon LoeligerSep 26, 2005
  16. Junio C HamanoSep 26, 2005
  17. Fix default pull not to do an unintended Octopus.Junio C Hamano, Sep 27, 2005
  18. Josef WeidendorferSep 27, 2005
  19. Petr BaudisSep 27, 2005
  20. Josef WeidendorferSep 27, 2005
  21. Junio C HamanoSep 27, 2005
  22. Petr BaudisSep 27, 2005
  23. Petr BaudisSep 27, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.