From: Theodore Tso <tytso@mit.edu>
To: David Kastrup <dak@gnu.org>
Cc: Julian Phillips <julian@quantumfyre.co.uk>,
Lars Hjemli <lh@elementstorage.no>, Jeff King <peff@peff.net>,
git@vger.kernel.org
Subject: Re: Terminology question about remote branches.
Date: Sat, 4 Aug 2007 18:56:55 -0400 [thread overview]
Message-ID: <20070804225655.GD11150@thunk.org> (raw)
In-Reply-To: <85hcnfdvtr.fsf@lola.goethe.zz>
On Sat, Aug 04, 2007 at 08:00:00PM +0200, David Kastrup wrote:
>
> I think I am going to cry. So I need to rebase my branches, pull out
> the resulting patch sets, scrap my repository, clone it new from
> upstream, reapply my branches, in order to have a system where the
> documentation is somewhat in synch with the actual behavior?
... or you can you use "git remote" to create the remote tracking
branches. The important thing to realize is that 99% of what "git
remote" does is purely by editing the config file. (The last 1% is
running "git fetch" if you specify the -f option.) So understanding
what gets placed in the .git/config file after doing an initial clone
from a URL for a pre-1.5 git and what gets placed in .git/config file
and how the branches are set up post 1.5 is key to understanding what
is going on.
> No, it would seem that I can just
> git-clone -l
> my repository and be set up in the new order of things. Nice.
Be careful, not really. A git-clone -l will set up a new repository
where origin/master is your original repository, i.e.:
[remote "origin"]
url = /usr/projects/e2fsprogs/base
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
In contrast, if you had done a git-clone of remote repository, you
might see something like this instead:
[remote "origin"]
url = git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
In contrast, if you are using git 1.4, after a clone, "origin" and
"master" are by default set to the "master" branch in the source
repository, and in git 1.4 (and in git 1.5 if you don't have any of
the above configuration opions in your .git/config file), the "origin"
branch is magical and works like the remote tracking branch of
origin/master of git 1.5 for the purposes of "git fetch", and then the
implied merge done by "git pull" merges from "origin" branch to the
"master" branch.
> However, it would appear from my experiments up to now that the
> --track option _can't_ be made to work with a 1.4 repository. I think
> that is worth mentioning in the docs.
Well, there really is no such thing as a "1.4 repository". The only
real difference is the default configuration which is dropped into the
.config file when you do a "git clone", and whether the head of the
master branch created after the "git clone" is called "origin", with
some magic special casing so that works like a remote tracking branch
of the remote repo's master branch, or whether it is called
"origin/master", with explicit configuration rules in .git/config.
The real issue is that a "1.4 repository" (that is a repository
created by "git clone" from git 1.4 and where the config file hasn't
been updated either by hand-editing the config file or by use of "git
config" or "git remote" to have remote branches) doesn't have any
remote branches, and git branch -track only has significance if you
are creating a new (local) branch from a remote tracking branch.
Regards,
- Ted
next prev parent reply other threads:[~2007-08-04 22:57 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
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 [this message]
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=20070804225655.GD11150@thunk.org \
--to=tytso@mit.edu \
--cc=dak@gnu.org \
--cc=git@vger.kernel.org \
--cc=julian@quantumfyre.co.uk \
--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