Thread (24 messages) flat view 24 messages, 3 authors, 2016-06-15

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help