Git development
 help / color / mirror / Atom feed
From: David Kastrup <dak@gnu.org>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org
Subject: Re: Terminology question about remote branches.
Date: Sat, 04 Aug 2007 14:36:07 +0200	[thread overview]
Message-ID: <85tzrfh3yg.fsf@lola.goethe.zz> (raw)
In-Reply-To: <20070804120243.GB9716@coredump.intra.peff.net> (Jeff King's message of "Sat\, 4 Aug 2007 08\:02\:43 -0400")

Jeff King <peff@peff.net> writes:

> On Sat, Aug 04, 2007 at 12:55:43PM +0200, David Kastrup wrote:
>
>> A local branch is one with a local branch head.  In contrast, checking
>> out a remote branch, while possible, leaves one with a detached head.
>
> Yes, if by "remote branch" you mean a "remote tracking branch".

Jeff, I actually have no _clue_ what I "mean" with respect to the
established git terminology because I can't reconcile the
documentation's use of words with my meagre understanding of the
technical processes involved.

So I can't even tell you whether "by remote branch I mean a remote
tracking branch".

>> "remote-tracking" basically means that git-pull will update the
>> branch according to changes in the remote repository.
>
> A "remote tracking branch" is a branch in refs/remotes/* that is
> updated by _git-fetch_ (which is in turn called by git-pull) to
> track a remote's position of a branch.
>
> A local branch which tracks a remote branch (I don't recall seeing
> the phrase "remote-tracking" -- where did this come from?) has the
> correct magic in .git/config to pull from a specific remote branch
> when 'git-pull' is given without arguments.
>
>> Creating a branch using git-branch or git-checkout will always
>> create a local branch which may or may not be remote-tracking
>> according to the --no-track or --track options.
>
> Yes, although again, I think calling it a "remote-tracking branch"
> to mean "a local branch that tracks a remote branch" is confusingly
> similar to the more common "remote tracking branch" to mean "a
> branch in refs/remotes that track's a remote repository's idea of a
> branch".

Well, of _course_ it is confusingly similar.  After all, I am posting
this question because I _am_ confused!  And I am trying to both clear
up my confusion as well as get an idea how to fix the documentation to
be less confusing.

>> So there are basically three types of branches in a repository that
>> I can see:
>> 
>> local branch, not remote-tracking local branch, remote-tracking
>> remote branch, remote-tracking
>
> No, the remote branch is not remote-tracking in the sense that you
> defined above; it is not meant to be pulled into.

Sigh.  But it is cached and updated locally in some manner when
pulling, isn't it?  I can diff against it.

> I think you are confused by two uses of the word "track". In one
> case, we mean that git-fetch will remember the remote's idea of a
> branch in refs/remotes/<remote>/<branch>. In another, we mean that a
> local branch will default to pulling from a particular
> (remote,branch) combination.
>
>> So the terminology seems fuzzy at the moment, and my attempt to
>> clear it up might not be the preferred way of doing it.
>
> Yes, it is very fuzzy. Using "track" for the concept of a local
> branch defaulting to a particular (remote,branch) pair for git-pull
> is, I think, more recent and less used. If there were another term
> for this, it might be more clear.

It is not just git-pull.  I don't get the fine lines between "remote",
"remote tracking" and the respective details in either the user manual
or the manual pages of branch-related commands.

And it's actually worse after your explanations.  Previously I
imagined to have a chance to figure this out on my own, by trying to
abstract from what I see happening when using the various commands.

Now I think that I basically have no chance figuring this out on my
own sufficiently well to be able to improve the documentation.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

  reply	other threads:[~2007-08-04 12:36 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-04 10:55 Terminology question about remote branches David Kastrup
2007-08-04 12:02 ` Jeff King
2007-08-04 12:36   ` David Kastrup [this message]
2007-08-04 13:07     ` Lars Hjemli
2007-08-04 13:38       ` David Kastrup
2007-08-04 14:03         ` Lars Hjemli
2007-08-04 14:11           ` David Kastrup
2007-08-04 14:25             ` David Kastrup
2007-08-04 14:35               ` Lars Hjemli
2007-08-04 15:09                 ` David Kastrup
2007-08-04 15:48                   ` Lars Hjemli
2007-08-05  9:24                   ` Jeff King
2007-08-04 14:50               ` Julian Phillips
2007-08-04 17:00       ` David Kastrup
2007-08-04 17:19         ` Julian Phillips
2007-08-04 18:00           ` David Kastrup
2007-08-04 22:56             ` Theodore Tso
2007-08-05  7:06               ` David Kastrup
2007-08-05  9:21     ` Jeff King
2007-08-05  9:29       ` David Kastrup
2007-08-05  9:32         ` Jeff King
2007-08-05  9:44           ` David Kastrup
2007-08-05  9:46             ` Jeff King
2007-08-04 12:14 ` Jakub Narebski
2007-08-04 13:29 ` Sean
2007-08-04 14:01   ` David Kastrup
2007-08-04 14:48     ` Sean
2007-08-04 15:22       ` David Kastrup
2007-08-05 10:10       ` Jeff King
2007-08-05 10:05     ` Jeff King
2007-08-05 10:56       ` Steffen Prohaska
2007-08-05 11:02         ` Jeff King
2007-08-05 11:38           ` David Kastrup
2007-08-05 11:52             ` Jeff King
2007-08-05 12:12               ` David Kastrup
2007-08-05 12:14                 ` Jeff King
2007-08-05 15:48                 ` Theodore Tso
2007-08-05 16:23                   ` David Kastrup
2007-08-05 16:27                   ` Randal L. Schwartz
2007-08-05 16:40                 ` Sean
2007-08-05 16:45                   ` Jeff King
2007-08-05  7:31 ` Junio C Hamano
2007-08-05 10:07   ` Steffen Prohaska
2007-08-05 14:23   ` Julian Phillips
2007-08-05 15:09     ` David Kastrup
2007-08-05 15:24       ` Julian Phillips

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=85tzrfh3yg.fsf@lola.goethe.zz \
    --to=dak@gnu.org \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox