All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andreas Ericsson <ae@op5.se>
To: Junio C Hamano <gitster@pobox.com>
Cc: Steffen Prohaska <prohaska@zib.de>,
	Jakub Narebski <jnareb@gmail.com>, Sergei Organov <osv@javad.com>,
	git@vger.kernel.org
Subject: Re: [Newbie] How to *actually* get rid of remote tracking branch?
Date: Wed, 14 Nov 2007 02:02:52 +0100	[thread overview]
Message-ID: <473A493C.4070902@op5.se> (raw)
In-Reply-To: <7vr6itr96h.fsf@gitster.siamese.dyndns.org>

Junio C Hamano wrote:
> Andreas Ericsson <ae@op5.se> writes:
> 
>> I've got half a patch ready to change all occurrences of anything but
>> "remote-tracking branch" to that self-same description. This is what
>> I've got in Documentation/glossary.txt so far:
>>
>> [[def_remote_tracking_branch]]remote-tracking branch:
>>    A "remote-tracking branch" is a branch set up to track the
>>    state of a branch in a remote repository which the user has named.
>> These branches follow exactly the same rules as the branches which
>>    reside in the remote repository, except that they are manipulated
>>    by `git fetch` instead of `git push`. That is, they can only be
>>    updated if the update would result in a  <<def_fastforward,fast
>> forward>>, or if the user supplies the  '--force' option.  They cannot
>> be checked out or committed to by users, but serve
>>    solely as local reference-pointers to their corresponding branches
>>    in the remote repository.
>>    The most common example of a remote-tracking branch is origin/master.
> 
> Please try to read it as if it were an entry in a glossary.
> The sentence "... follow exactly the same rules as ..." was
> "Huh?" to me.  "rules?  what rules?  the set of valid characters
> in their names?"
> 
> When branch 'foo' from remote is tracked with the standard layout
> (post 1.3.0) it is copied to refs/remotes/origin/foo and people
> often fork their local branch refs/heads/foo to build on top.
> The use of the word "corresonding" feels a bit confusing,
> because you can arguably say refs/heads/foo at remote
> corresopnds to refs/heads/foo in your repository.
> 
> I'd drop "These branches follow ... the '--force' option.  "
> from the above.  The rules on how they are updated are
> irrelevant, before the reader understands what they are for.
> How about this?
> 
>     A "remote tracking branch" remembers which commit a branch
>     in the remote repository was pointing at last time you
>     checked.  It cannot be checked out or committed because its
>     purpose is to serve as a local reference point after you
>     built your own changes on top of it in your local branch
>     forked from it.  The most common example of a remote
>     tracking branch is "origin/master", which tracks the
>     "master" branch of the "origin" remote.
> 

I'd skip "after you built your own changes ..." and let it go at
that. Will amend. Thanks.

> BTW, when you have this data-flow (probably typical in a shared
> repository workflow):
> 
>     Remote repository               Your repository
> 
>     refs/heads/foo -------(A)------> refs/remotes/origin/foo
>          ^                                |
>          |                               (B)
>          |                                |
>          |                                V
>          `-------------(C)---------- refs/heads/foo
> 
>          (A) "git fetch" with remote.origin.fetch configuration
>              set to +refs/heads/*:refs/remotes/origin/* keeps
>              your refs/remotes/origin/foo up-to-date with their
>              refs/heads/foo
> 
>          (B) "git merge origin/foo" while on "foo" branch (there
>              are few shorthands like "git pull origin foo" while
>              on "foo" branch.  If you say "git branch --track
>              foo origin/foo", then running "git pull" without
>              parameter while on "foo" branch).
> 
>          (C) "git push origin foo".
> 
>  * Everybody seems to agree that "refs/remotes/origin/foo" is
>    called a "remote tracking branch";
> 

I'd like to insert the significant dash there. remote-tracking vs
remote tracking. It solves the one ambiguity with it, and would
finally make it clear and consistent almost however it's used.

>  * Your refs/heads/foo follows and builds on top of 'foo' branch
>    at the remote.  Some people errorneously call it "tracking"
>    but that is because we do not have a good term for it;
> 

"private tracking branch"? Nah...

>  * There is no good name for "refs/heads/foo at the remote".  We
>    always say "the remote branch you follow" (or "track"). 
> 

"remote-repo branch" perhaps? The universe doesn't exactly toll its
bells in approval at that, but at least it's not ambiguous.

I've seen it written as "remote tracking branch" on irc a few times.
It causes 10 minutes of confusion where no-one's sure what anyone
else means. With the dash in there, there's no room for ambiguity.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

  reply	other threads:[~2007-11-14  1:03 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-13 14:25 [Newbie] How to *actually* get rid of remote tracking branch? Sergei Organov
2007-11-13 14:53 ` Jakub Narebski
2007-11-13 15:39   ` Sergei Organov
2007-11-13 16:01     ` Johannes Schindelin
2007-11-13 17:31       ` Sergei Organov
2007-11-13 18:21         ` Johannes Schindelin
2007-11-13 18:44           ` Sergei Organov
2007-11-17 16:56             ` Jan Hudec
2007-11-13 16:03     ` Jakub Narebski
2007-11-13 17:16       ` Steffen Prohaska
2007-11-13 17:42         ` Jakub Narebski
2007-11-13 17:58           ` osv
2007-11-13 18:17             ` Lars Hjemli
2007-11-13 18:59               ` Sergei Organov
2007-11-13 18:39             ` Steffen Prohaska
2007-11-17 19:12             ` Jan Hudec
2007-11-17 19:51               ` [PATCH] Improve description of git-branch -d and -D in man page Jan Hudec
2007-11-19  9:49                 ` Sergei Organov
2007-11-13 17:47         ` [Newbie] How to *actually* get rid of remote tracking branch? Sergei Organov
2007-11-13 20:01         ` Andreas Ericsson
2007-11-13 22:33           ` Andreas Ericsson
2007-11-13 22:42             ` Jakub Narebski
2007-11-13 23:05             ` J. Bruce Fields
2007-11-13 23:56             ` Junio C Hamano
2007-11-14  1:02               ` Andreas Ericsson [this message]
2007-11-14  5:48                 ` Steffen Prohaska
2007-11-13 17:40       ` Sergei Organov
2007-11-13 19:17         ` Jakub Narebski

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=473A493C.4070902@op5.se \
    --to=ae@op5.se \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jnareb@gmail.com \
    --cc=osv@javad.com \
    --cc=prohaska@zib.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.