Re: Unhelpful "branch.master.remote = <nickname>" advice?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2009.11.12 15:17:29 +0100, Jan Nieuwenhuizen wrote:
> Op woensdag 11-11-2009 om 21:32 uur [tijdzone +0100], schreef Tomas
> Carnecky:
> 
> Hi Tomas,
> 
> > It didn't tell you to copy'n'paste the whole lines to a git-config(1)  
> > commandline. But I do see that the output can be confusing for someone  
> > not familiar with the git configuration files/git-config.
> 
> Once I get this to work, I'll send a patch for it.
> 
> > I don't know the relationship between you and eddy, but usually you  
> > shouldn't rebase (=rewrite) eddies commits. That also means you'd have  
> > to live with the merge commits.
> 
> Hmm, okay.
> 
> > I see your mistake. Both the origin and eddy remote write to the same  
> > namespace (refs/remotes/origin/*), and that's also why you get (force  
> > update) below
> 
> Ah, that makes sense.
> 
> > . Change the fetch line of remote.eddy.fetch to +refs/heads/*:refs/ 
> > remotes/eddy/*. After that both command (pull -r / pull -r eddy)  
> > should work (I hope).
> 
> Okay, so now I have
> 
>     [branch "master"]
> 	    remote = origin
> 	    merge = refs/heads/master
>     [remote "origin"]
> 	    url = git@xxxxxxxxxx:janneke/gub.git
> 	    fetch = +refs/heads/*:refs/remotes/origin/*
>     # advise from git pull, using <nickname> = eddy
>     #        branch.master.remote = <nickname>
>     #        branch.master.merge = <remote-ref>
>     #        remote.<nickname>.url = <url>
>     #        remote.<nickname>.fetch = <refspec>
>     #[branch "master"]
>     #	remote = eddy
>     #	merge = refs/heads/master
>     [remote "eddy"]
> 	    url = http://github.com/epronk/gub.git
>     #use remote.eddy.fetch to +refs/heads/*:refs/remotes/eddy/*.
> 	    fetch = +refs/heads/*:refs/remotes/eddy/*
> 
> It looked promising, but still get
> 
>     15:00:20 janneke@peder:~/vc/gub
>     $ git pull -r --verbose
>     From git@xxxxxxxxxx:janneke/gub
>      = [up to date]      lilypond-release-branch -> origin/lilypond-release-branch
>      = [up to date]      master     -> origin/master
>     Current branch master is up to date.

That used the configured defaults.

>     15:00:26 janneke@peder:~/vc/gub
>     $ git pull -r --verbose eddy
>     From http://github.com/epronk/gub
>      = [up to date]      lilypond-release-branch -> eddy/lilypond-release-branch
>      = [up to date]      master     -> eddy/master

This one got arguments, so it didn't use defaults.

If you want "git pull" to use the "eddy" remote, then set
branch.<name>.remote to eddy, not to origin.


And as a sidenote:
Using "git pull --rebase" with more than one upstream is most of the
time a very bad idea.

Let's say we have:

A---B---C---D (master)
     \   \
      \   E---F---G (origin's master)
       \
        H---I---J (eddy's master)

Now you do "git pull --rebase origin master", which results in:

                      D' (master)
                     /
A---B---C---E---F---G (origin's master)
     \
      H---I---J (eddy's master)

And then you do "git pull eddy master", which will now rebase history
that is not yours:

A---B---C---E---F---G (origin's master)
     \
      H---I---J (eddy's master)
               \
                C'--E'--F'--G'--D' (master)

IOW, you get one hell of a mess.

Björn
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]