Re: Change "pull" to _only_ download, and "git update"=pull+merge?
- From
- Ingo 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