Thread (17 messages) flat view 17 messages, 4 authors, 2016-06-15

Re: [RFC/PATCH 1/2] remote tracking: return the tracking branch for the given branches

From: Santi Béjar <hidden>
Date: 2016-06-15 22:46:58

2009/6/18 Jakub Narebski [off-list ref]:
On Thu, 18 June 2009, Santi Béjar wrote:
quoted
2009/6/18 Jakub Narebski [off-list ref]:
[cut]
quoted
quoted
 $ git remote tracking <remote> <remote branch>

would show all local branches that track <remote branch>, and have
<remote> as default remote,
Maybe my description is unclear, but it's not about local branches
which track <branch> on <remote>, it is about the local branch
representation of the remote branch, i.e. not 'master' but
origin/master (git remote tracking origin master in a default clone).
Ah, the problem with the same (or similar) name for two different
things.  If we have local branch 'local' set to track branch 'master'
on remote 'origin', we have:

  /------- local repository ------\            /- origin -\
 /                                 \          /            \
 |                                 |          |            |
 'local'  -------->  'origin/master' -----------> 'master'
 refs/heads/local    refs/remotes/origin/master   refs/heads/master

 branch.local.remote = origin
 branch.local.merge  = refs/heads/master

 remote.origin.fetch = +refs/heads/*:refs/remotes/origin/*

'origin/master' is called remote-TRACKING branch (for 'master' branch
on remote 'origin').  Setting up automerge information for local branch
'local' which _follows_ branch 'master' on remote 'origin' is done
using --TRACK option to git-branch.

Therefore the confusion.
OK, but I wonder if the documentation for the new command is clear
enough or can be improved.

Do I understand correctly that you want for

 $ git remote tracking origin master

to return

 origin/master
In this particular case (the above settings) not exactly, as master
does not match exactly the lhs of the refspec. It would be:

$ git remote tracking origin refs/heads/master
refs/remotes/origin/master
(and perhaps also origin/HEAD?).
HEAD is another beast, as the local HEAD symlink is a local config,
that defaults to the remote default branch, but that you can change
with "git remote set-head".

Ops, you are saying to return origin/HEAD for "git remote tracking
origin master", no? I don't think it makes sense, I think of "git
remote tracking" more as a mapping function, it applies the map (the
refspec) to the given argument.

Santi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help