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

Re: [PATCH 7/11] Avoid git-fetch in `git-pull .` when possible.

From
Shawn Pearce <spearce@spearce.org>
Date
Dec 28, 2006, 08:17 UTC
Message-ID
<20061228081701.GA18029@spearce.org>
In-Reply-To
<7v8xgsxx1r.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano <junkio@cox.net> wrote:
Show 13 quoted lines
> "Shawn O. Pearce" <spearce@spearce.org> writes:
> 
> > Users may also now use `git-pull . foo~3` to merge the early part
> > of branch foo.  This was not previously possible as git-fetch does
> > not know how to fetch foo~3 from a repository.
> 
> I personally think this is not an improvement, but rather a new
> source of confusion.  If the user wants a local merge, there is
> 'git-merge'.  And the distinction between the commands makes it
> clear that local merge can merge any commits exactly because
> they are available locally, while remote fetch+merge needs to
> choose from what the remote side offers so not arbitrary commits
> like foo@{3.days.ago} cannot be pulled.

True. But you know you are doing a local merge with `git pull .`. So why should you be restricted from using the capabilities of a local merge just because the frontend you prefer to use is limited when its doing remote merges?

I didn't really do this change for this feature, I did for the
performance (see below).
 
> Also I thought there was a configuration variable that talks
> about "remote = ."  (didn't I merge that patch -- I do not
> remember offhand) and I wonder how that interacts with this
> change.
I must have missed that discussion on the list.  Not sure how as
I read everything.  Oh, its that grey stuff upstairs not recalling
history as well as Git does... ;-)
 
> How much performance gain are we talking about here?
It halves my 'git pull . foo' times on my Mac OS X PowerPC 64 system:
  Without: ~900 ms
  With:    ~440 ms
-- 
Shawn.
Previous: Junio C HamanoNext: Junio C Hamano
Message 8 of 17 in “Honor GIT_REFLOG_ACTION in git-rebase.”
  1. 2/11 Honor GIT_REFLOG_ACTION in git-rebase.Shawn O. Pearce, Dec 28, 2006
  2. 3/11 Use branch names in 'git-rebase -m' conflict hunks.Shawn O. Pearce, Dec 28, 2006
  3. 4/11 Ensure `git-pull` fails if `git-merge` fails.Shawn O. Pearce, Dec 28, 2006
  4. 5/11 Honor pull.{twohead,octopus} in git-merge.Shawn O. Pearce, Dec 28, 2006
  5. 6/11 Allow git-merge to select the default strategy.Shawn O. Pearce, Dec 28, 2006
  6. 7/11 Avoid git-fetch in `git-pull .` when possible.Shawn O. Pearce, Dec 28, 2006
  7. Junio C HamanoDec 28, 2006
  8. Shawn PearceDec 28, 2006
  9. Junio C HamanoDec 28, 2006
  10. 8/11 Move better_branch_name above get_ref in merge-recursive.Shawn O. Pearce, Dec 28, 2006
  11. 9/11 Allow merging bare trees in merge-recursive.Shawn O. Pearce, Dec 28, 2006
  12. Junio C HamanoDec 28, 2006
  13. 10/11 Use merge-recursive in git-am -3.Shawn O. Pearce, Dec 28, 2006
  14. 11/11 Improve merge performance by avoiding in-index merges.Shawn O. Pearce, Dec 28, 2006
  15. Junio C HamanoDec 28, 2006
  16. Shawn PearceDec 28, 2006
  17. Johannes SchindelinDec 29, 2006

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.