From: Junio C Hamano <junkio@cox.net>
To: Josef Weidendorfer <Josef.Weidendorfer@gmx.de>
Cc: git@vger.kernel.org
Subject: Re: efficient cloning
Date: Mon, 20 Mar 2006 15:04:34 -0800 [thread overview]
Message-ID: <7voe00iupp.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: <200603201730.19373.Josef.Weidendorfer@gmx.de> (Josef Weidendorfer's message of "Mon, 20 Mar 2006 17:30:19 +0100")
Josef Weidendorfer <Josef.Weidendorfer@gmx.de> writes:
> On Monday 20 March 2006 09:54, you wrote:
>> * A new flag --use-separate-remote stops contaminating local
>> branch namespace by upstream branch names. The upstream
>> branch heads are copied in .git/refs/remotes/ instead of
>
> Shouldn't this be .git/refs/remotes/origin/?
> Ie. different namespaces for different remotes?
>
> Linus wanted to still be able to say "origin" which automatically
> would map to "remotes/origin/master", where the name of the remote
I do not remember that, but even if he said something similar to
that, I suspect it would not be "map remotes/origin/master to
origin", but "origin could mean remotes/origin when origin is
the unique tail-name anywhere under refs/".
I think what is reasonable is something like this:
- If you start from a repository cloned in the traditional
way, the upstream "master" is kept track of with your
"origin", so "diff origin master" would be "my changes on top
of the upstream".
- If your repository was cloned with --use-separate-remote, the
upstream "master" is refs/remotes/master, so the same diff
can be had with "diff remotes/master master".
- Regardless of how you started your cloned repository, with an
$GIT_DIR/{remotes,refs/heads,refs/remotes} editor I hinted in
a separate message, you can rearrange things to organize the
refs/ hierarchy any way you want.
- You could for example arrange to track my "master" as
refs/heads/origin and all the other branch heads under
refs/remotes/junkio/ (or not even track my other branches
if you are not interested). Then the same diff can be had
with "diff origin master".
- You could for example arrange to track all my branches in
refs/remotes/junkio/, and if git-pasky were still alive,
Pasky's branches in refs/remotes/pasky. If we had a "take
the unique tail-name anywhere under refs/" logic, the same
diff can be had with "diff junkio/master master".
So I think two things that would be nice to have on top of what
we have are (1) the said "remotes-and-refs editor" [*1*], and
(2) a change to sha1_name.c to look for places other than
built-in tags/ and heads/ under refs/ to find a unique
tail-match.
Since I do not do Porcelain, (2) would obviously be the next
thing for me to work on on this topic. I should also address
"Ouch I did not realize I have given the same name to a tag and
a branch" warning issue while doing so.
[Footnote]
*1* ... which currently I do not plan to do myself unless I have
absolutely nothing else to do and really bored. A sound of huge
hint dropping ;-).
next prev parent reply other threads:[~2006-03-20 23:04 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-19 21:16 efficient cloning James Cloos
2006-03-19 22:31 ` Shawn Pearce
2006-03-19 23:18 ` Junio C Hamano
2006-03-20 0:32 ` James Cloos
2006-03-20 1:55 ` Junio C Hamano
2006-03-20 8:54 ` Junio C Hamano
2006-03-20 15:18 ` Petr Baudis
2006-03-20 21:39 ` Junio C Hamano
2006-03-20 22:41 ` Petr Baudis
2006-03-20 23:07 ` Junio C Hamano
2006-03-20 16:30 ` Josef Weidendorfer
2006-03-20 23:04 ` Junio C Hamano [this message]
2006-03-20 23:21 ` Petr Baudis
2006-03-20 23:49 ` Junio C Hamano
2006-03-21 8:19 ` Andreas Ericsson
2006-03-21 8:42 ` Junio C Hamano
2006-03-21 9:19 ` Jeff King
2006-03-21 9:45 ` Junio C Hamano
2006-03-21 11:29 ` Petr Baudis
2006-03-21 0:26 ` Josef Weidendorfer
2006-03-21 0:57 ` Junio C Hamano
2006-03-21 8:28 ` Junio C Hamano
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=7voe00iupp.fsf@assigned-by-dhcp.cox.net \
--to=junkio@cox.net \
--cc=Josef.Weidendorfer@gmx.de \
--cc=git@vger.kernel.org \
/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