Re: [RFC/PATCH 3/3] push: add separate 'downstream' branch
From: Felipe Contreras <hidden>
Date: 2016-06-15 22:57:17
On Thu, May 16, 2013 at 8:52 AM, Ramkumar Ramachandra [off-list ref] wrote:
Felipe Contreras wrote:quoted
Does branch.<name>.merge overrides remote.<name>.fetch? No. They complement each other.I often wonder if you are reading what you're responding to:
And I wonder if you care if what you say is actually true.
remote.<name>.fetch is operated on by fetch, while branch.<name>.merge is operated on by merge; they are really orthogonal.
You keep saying they are orthogonal, but they are not. Read
remote.c::branch_get().
And try this:
[remote "origin"]
url = git@github.com:felipec/git.git
# fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
Can you merge? No. Can you do master@{u}? No. Several other things don't work.
quoted
The same that 'git pull' does when both branch.<name>.merge and remote.<name>.fetch are set.Are you reading this? git pull _fetches_ from remote.<name>.fetch and _merges_ from branch.<name>.merge. What is "the same" in git push terms? It's a simple question; which ref does push update: the one specified by remote.<name>.push or branch.<name>.push?
[remote] pushdefault = origin [remote "origin"] push = refs/head/*:refs/heads/for/* [branch "master"] pushremote = github push = refs/heads/new-master [branch "next"] pushremote = origin push = refs/heads/new-next % git checkout master && git push Where should it go? github/new-master. Obviously. % git checkout next && git push Where should it go? origin/new-next. Obviously. % git checkout main && git push Where should it go? origin/for/maint. Obviously. I don't see what the big deal is.
quoted
Of course it would work. Does @{u} stop working when remote.<name>.fetch is set?It doesn't work when _only_ remote.<name>.fetch is set: you need branch.<name>.merge to determine @{u}, just like you would need branch.<name>.push to determine @{d}.
So? The answer is no.
quoted
It is a downstream branch.Which commit does git show @{d} show you? There is no ref called refs/for/master.
The same commit 'git show @{-10000}' shows you. The fact it doesn't
resolve to a commit doesn't mean @{-100} is not the nth-hundredth
previous checkout.
--
Felipe Contreras