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
IMIngo Molnar <mingo@elte.hu>
Date
Apr 20, 2005, 07:01 UTC
Message-ID
<20050420070157.GA12584@elte.hu>
In-Reply-To
<20050419105008.GB12757@pasky.ji.cz>
* Petr Baudis <pasky@ucw.cz> wrote:
Show 11 quoted lines
> > I think pull is pull.  If you are doing lots of local stuff and do not
> > want it overwritten, it should have been in a forked branch.
> 
> 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.
> 
> 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.

yeah. In fact most of the times i did 'git pull pasky' in the past, the 'merge' phase was unsuccessful, and i had to nuke the tree and recreate it. All i did with the snapshots was to build them, so there were no local changes. Waiting a couple of days with doing a 'git pull pasky', or installing Linus' tree is a sure way to break the merging.

e.g. to reproduce the last such failure i had today, do:
 cd git-pasky-base
 echo 8568e1a88c086d1b72b0e84ab24fa6888b5861b9 > .git/HEAD
 read-tree $(tree-id $(cat .git/HEAD))
 checkout-cache -a -f
 make
 make install           # make sure to use the older tools
 rm -rf .git/objects
 git pull pasky
and i get:
 [...]
 fatal: unable to execute 'gitmerge-file.sh'
 fatal: merge program failed
        Conflicts during merge. Do git commit after resolving them.

note that with earlier versions of pasky, i had other merge conflicts. Sometimes there were .rej files, sometimes some sort of script failure. So it seems rather unrobust at the moment. Especially if i happen to install Linus' tree and try to sync the pasky tree with those tools.

another thing: it's confusing that during 'git pull', the rsync output is not visible. Especially during large rsyncs, it would be nice to see some progress. So i usually use a raw rsync not 'git pull', due to this.

yet another thing: what is the canonical 'pasky way' of simply nuking the current files and checking out the latest tree (according to .git/HEAD). Right now i'm using a script to:

  read-tree $(tree-id $(cat .git/HEAD))
  checkout-cache -a
(i first do an 'rm -f *' in the working directory)
i guess there's an existing command for this already?
	Ingo
Previous: Daniel BarkalowNext: Petr Baudis
Message 20 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.