Subject: Re: branch.pu.forcefetch

From: Pavel Roskin <[email-masked]>
Date: Thu, 28 Dec 2006 16:29:06 -0500

Hello!

On Wed, 2006-12-27 at 13:14 -0800, Junio C Hamano wrote:
> Pavel Roskin <[email-masked]> writes:
> 
> > For example, I clone the git repository anew, and I try to update it by
> > git-fetch a few days later.  I get an error:
> >
> > * refs/remotes/origin/pu: not updating to non-fast forward branch 'pu'
> > of git://www.kernel.org/pub/scm/git/git
> 
> Perhaps you would want something like this?
> 
> if you are using separate remote layout:
> 
> [remote "origin"]
> 	fetch = +refs/heads/pu:refs/remotes/origin/pu
> 	fetch = refs/heads/*:refs/remotes/origin/*

That works.

Actually, it's strange that I don't actually have refs/heads/pu
under .git, and it doesn't get created even if I run "git-pull" or
"git-pull origin pu".

I realize that I'm far behind in my understanding of GIT, but it seems
to me that something is wrong in the new layout.

We have a line that says: "pull from pu branch of origin and merge it
into local pu branch even if fast-forward is impossible".  However,
there it no local pu branch.  Yet not having this line blocks updating
of master branch.

It's like saying: I won't update master branch because there is another
branch that you are not tracking locally, but if you were, it would not
fast forward.  Seems quite perverse to me.

My .git/config file is:

[core]
        repositoryformatversion = 0
        filemode = true
        logallrefupdates = true
[remote "origin"]
        url = git://www.kernel.org/pub/scm/git/git.git
        fetch = refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master

-- 
Regards,
Pavel Roskin