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

Re: Change "pull" to _only_ download, and "git update"=pull+merge?

From
Daniel Barkalow <barkalow@iabervon.org>
Date
Apr 19, 2005, 18:28 UTC
Message-ID
<Pine.LNX.4.21.0504191245160.30848-100000@iabervon.org>
In-Reply-To
<20050419105008.GB12757@pasky.ji.cz>
On Tue, 19 Apr 2005, Petr Baudis wrote:
> I disagree. This already forces you to have two branches (one to pull
> from to get the data, mirroring the remote branch, one for your real
> work) uselessly and needlessly.

If you pull in a non-tracked tree, it certainly won't apply the changes, so you can just have your local tree and pull other people's trees as desired.

> I think there is just no good name for what pull is doing now, and
> update seems like a great name for what pull-and-merge really is. Pull
> really is pull - it _pulls_ the data, while update also updates the
> given tree. No surprises.

I'm actually getting suspicious that the right thing is to hide "pull" in the id scheme. That is, instead of saying "linus" to refer to the "linus" head that you currently have, you say "+linus" to refer to the head Linus has on his server currently, and this will cause you to download anything necessary to perform the operation with the resulting value.

See, I don't think you ever want to just pull. You want to pull-and-do-something, but the something could be any operation that uses a commit, not necessarily update. So you could do "git diff -r +linus" to compare your head against current linus. You'd want "git update" to take a working directory from "linus" to "+linus" (just because you know Linus's more recent head doesn't mean you're automatically using it). You could just "git merge +linus" in your working directory to sync with Linus. Even "git log +linus" to see his recent changes.

I think the only reason not to just make any reference to a head pull it is performance on looking up the head; you don't really want to hammer the server getting these 40-byte files constantly or wait for a connection every time (not to mention the possibility of not being able to connect). But there's no reason to want to not have the latest data, since the older data doesn't go away.

	-Daniel
*This .sig left intentionally blank*
Previous: Martin SchlemmerNext: David A. Wheeler
Message 17 of 29 in “Add "clone" support to lntree”
  1. Add "clone" support to lntreeDaniel Barkalow, Apr 16, 2005
  2. Petr BaudisApr 16, 2005
  3. Petr BaudisApr 16, 2005
  4. Linus TorvaldsApr 16, 2005
  5. Petr BaudisApr 16, 2005
  6. Daniel BarkalowApr 16, 2005
  7. Petr BaudisApr 16, 2005
  8. Daniel BarkalowApr 17, 2005
  9. Petr BaudisApr 19, 2005
  10. Change "pull" to _only_ download, and "git update"=pull+merge?David A. Wheeler, Apr 19, 2005
  11. David GreavesApr 19, 2005
  12. Petr BaudisApr 19, 2005
  13. Martin SchlemmerApr 19, 2005
  14. Petr BaudisApr 19, 2005
  15. Jon SeymourApr 19, 2005
  16. Martin SchlemmerApr 19, 2005
  17. Daniel BarkalowApr 19, 2005
  18. David A. WheelerApr 19, 2005
  19. Daniel BarkalowApr 19, 2005
  20. Ingo MolnarApr 20, 2005
  21. Petr BaudisApr 20, 2005
  22. Ingo MolnarApr 20, 2005
  23. Ingo MolnarApr 20, 2005
  24. Petr BaudisApr 20, 2005
  25. David MansfieldApr 20, 2005
  26. Daniel BarkalowApr 16, 2005
  27. Petr BaudisApr 16, 2005
  28. Daniel BarkalowApr 16, 2005
  29. Petr BaudisApr 16, 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.