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
David A. Wheeler <dwheeler@dwheeler.com>
Date
Apr 19, 2005, 22:39 UTC
Message-ID
<42658888.60007@dwheeler.com>
In-Reply-To
<Pine.LNX.4.21.0504191245160.30848-100000@iabervon.org>
Daniel Barkalow wrote:
 >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...

In a _logical_ sense that's true; I'd only want to pull data if I intended to (possibly) do something with it. But as a _practical_ matter, I can see lots of reasons for doing a pull as a separate operation. One is disconnected operation; I may want to pull the data now, to prepare for disconnectino, and then work later while disconnected. Another is using lots of data compared to the pipesize; if I have a dial-in modem, or I want the history of the linux kernel since 0.0.1, I might want to "pull" & go away/go to sleep for the night. I might use cron/at to automatically "pull" at 3am from some interesting branches. The next day, I could then "pull" again to update just what changed, and/or do the operation I intended to do if the operation auto-pulls the missing data.

Show 6 quoted lines
>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.
>  
>
That's an interesting idea.  I'll have to think about that.

What command would you suggest for the common case of "update with current track?" I've proposed "git update [NAME]". "git merge" with update-from-current-track as default seems unclear, and I worry that I might accidentally press RETURN too soon & merge with the wrong thing. And I like the idea of "git update" doing the same thing (essentially) as "cvs update" and "svn update"; LOTS of people "know" what update does, so using the same command name for one of the most common operations smooths transition (GNU Arch's "tla update" is almost, though not exactly, the same too.)

I still think it's important to have a very simple command that updates your current branch with a tracked branch (because it's common to stay in sync with a master branch), and a way to just download the data without doing things with it YET (because you want to do things in stages). The commands "update" and "pull" come to mind when thinking that way, though as long as the commands are simple & clear that's a good thing (I think it's a GOOD idea to use the same commands as CVS and Subversion when the results are essentially the same, just because so many people are already familiar with them, but only where it makes sense.)

--- David A. Wheeler
Previous: Daniel BarkalowNext: Daniel Barkalow
Message 18 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.