Git development
 help / color / mirror / Atom feed
From: David Kastrup <dak@gnu.org>
To: "Lars Hjemli" <lh@elementstorage.no>
Cc: "Jeff King" <peff@peff.net>, git@vger.kernel.org
Subject: Re: Terminology question about remote branches.
Date: Sat, 04 Aug 2007 15:38:38 +0200	[thread overview]
Message-ID: <85k5sbh129.fsf@lola.goethe.zz> (raw)
In-Reply-To: <8c5c35580708040607ya186edcg89fbc90587b64d68@mail.gmail.com> (Lars Hjemli's message of "Sat\, 4 Aug 2007 15\:07\:01 +0200")

"Lars Hjemli" <lh@elementstorage.no> writes:

> On 8/4/07, David Kastrup <dak@gnu.org> wrote:
>> Now I think that I basically have no chance figuring this out on my
>> own sufficiently well to be able to improve the documentation.
>
> Remote-tracking branch:
>   A local copy of a branch in another repository. This kind of branch
>   cannot be updated by 'git-commit' but only by 'git-fetch' (hence
>   indirectly by 'git-pull' and 'git-remote update'). If you try to
>   'git-checkout' a remote-tracking branch, you will get a detached HEAD.
>
> Local branch:
>   A branch to which you may commit changes. Optionally, the branch can be
>   configured to "follow" one of your remote-tracking branches. This means
>   that a 'git-pull' without arguments (when your local branch is checked
>   out), will automatically 'git-fetch' and then 'git-merge' the remote-
>   tracking branch.

Does that mean that specifying "--track" to git-checkout or git-branch
never creates a remote-tracking branch?

> Example:
>
> Your local branch 'master' is setup to "follow"
> 'refs/remotes/origin/master'.

So --track/--no-track are actually supposed to be --follow and
--no-follow?

> So if you do this:
>
> $ git checkout master
> $ git pull
>
> Then the 'git pull'-command will do this:
>
> $ git fetch -f origin master:remotes/origin/master

This is then tracking?

> $ git merge remotes/origin/master

And this is then following?

> The magic setup that makes this happen is the following lines in .git/config:
>
> [remote "origin"]
Namely: a remote-tracking branch "origin"

>         url = git://git.kernel.org/pub/scm/git/git.git
>         fetch = +refs/heads/*:refs/remotes/origin/*
>
> [branch "master"]
>         remote = origin

Namely: follow the remote tracking branch origin?

>         merge = refs/heads/master
>
>
> Was this helpful?

So we have remote tracking branches, and we have local branches
following remote tracking branches, and "--track" and "--no-track"
create local branches following or not following a remote tracking
branch?  And have nothing whatsoever to do with tracking or not
tracking a remove branch?

Talk about misleading option names here.

Then in man git-branch we have:

	In its second form, a new branch named <branchname> will be
	created. It will start out with a head equal to the one
	given as <start-point>. If no <start-point> is given, the
	branch will be created with a head equal to that of the
	currently checked out branch.

	When a local branch is started off a remote branch, git can
	setup the branch so that git-pull(1) will appropriately
	merge from that remote branch. If this behavior is desired,
	it is possible to make it the default using the global
	branch.autosetupmerge configuration flag. Otherwise, it can
	be chosen per-branch using the --track and --no-track
	options.

What does "remote branch" in this context mean?  A local branch
following a remote tracked branch?  A remote tracked branch (which by
definition can't be checked out as a branch, since that leads to a
detached head)?  What does "start off" mean in this context?  If I
can't check out a remote branch, I can't start off on it, can I?

Does "--track" mean that the new branch will copy any "remote" lines
which incidentally don't point to remote branches as their name would
suggest, but rather to remote tracking branches?  And we want to have
the relation to the remote tracking branch preserved, not to the
actual remote branch?

I don't get it.  Really.  No chance.  There are fine distinction lines
in the git terminology, it would appear, and those lines are freely
ignored in naming options and configuration parameters.  And the
manual pages themselves are not overly concerned about explaining
those distinctions either.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

  reply	other threads:[~2007-08-04 13:38 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
2007-08-04 13:07     ` Lars Hjemli
2007-08-04 13:38       ` David Kastrup [this message]
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=85k5sbh129.fsf@lola.goethe.zz \
    --to=dak@gnu.org \
    --cc=git@vger.kernel.org \
    --cc=lh@elementstorage.no \
    --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