From: Theodore Tso <tytso@mit.edu>
To: Junio C Hamano <gitster@pobox.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Jakub Narebski <jnareb@gmail.com>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: Git benchmark - comparison with Bazaar, Darcs, Git and Mercurial
Date: Wed, 1 Aug 2007 18:03:50 -0400 [thread overview]
Message-ID: <20070801220350.GD28106@thunk.org> (raw)
In-Reply-To: <7vr6mn5znm.fsf@assigned-by-dhcp.cox.net>
On Wed, Aug 01, 2007 at 03:15:25AM -0700, Junio C Hamano wrote:
> > So would you accept a patch which adds a git-config variable which
> > specifies whether or not local clones should use hard links by default
> > (defaulting to yes), and which adds a --no-hard-links option to
> > git-clone to override the config option?
>
> Are you suggesting to make -l the default for local, in other
> words? I personally do not make local clone often enough that I
> am not disturbed having to type extra " -l" on the command line.
Yeah, essentially, with a git-config option (and comand-line option)
to override the default for those people who are "squeamish" about git
clone -l. Linus's suggestion of using file:// as a way to indicate
non-local also makes a lot of sense to me.
> Perhaps if the destination is local,
>
> - if -s is given, just set up alternates, do nothing else;
As I understand it, the main objection with making -s the default is
surprising result that could happen if you do a git-prune in the base
repository which causes objects which are borrowed from the base
repository via .git/objects/info/alternates, right?
What if git clone -s appended the repository which is borrowing
objects via alternates to a file located in the base repository,
.git/objects/info/shared-repos?
Then git-prune could also use the refs marked in each of the
downstream repositories that are sharing objects with base repository
and not make those objects go away. That way, git-gc --prune won't do
anything surprising to any shared repositories, since it will scan
those shared repositories automatically. Would that be considered
acceptable? That way you can get instant clones even on filesystems
that don't support hard links, such as Windows systems.
The way I would suggest doing it is once we implement support for
.git/objects/info/shared-repos is to do the following with git-clone
by default:
* If the source repo is specified via a file:// URL, per Linus's
suggestion, do the clone via copying.
* If the source repo is specified via a local pathname, and
.git/objects/info/shared-repos in the source repository is
writeable by the user who is doing the clone, then do a
clone -s.
* If the above fails, try clone -l
* If the above fails, do a clone via copying over a new pack
Would this be acceptable? Patches to do the following should be
fairly easy to whip up. Obviously this wouldn't be for 1.5.3. :-)
- Ted
next prev parent reply other threads:[~2007-08-01 22:04 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-01 0:16 Git benchmark - comparison with Bazaar, Darcs, Git and Mercurial Jakub Narebski
2007-08-01 2:14 ` Linus Torvalds
2007-08-01 5:50 ` Junio C Hamano
2007-08-01 8:48 ` David Kastrup
2007-08-01 9:24 ` Theodore Tso
2007-08-01 10:15 ` Junio C Hamano
2007-08-01 13:20 ` Alex Riesen
2007-08-01 13:20 ` Alex Riesen
2007-08-01 13:23 ` Alex Riesen
2007-08-01 15:49 ` Carl Worth
2007-08-01 17:03 ` Linus Torvalds
2007-08-01 18:17 ` David Kastrup
2007-08-01 20:36 ` Florian Weimer
2007-08-02 6:09 ` Junio C Hamano
2007-08-02 10:29 ` David Kastrup
2007-08-03 0:51 ` Junio C Hamano
2007-08-03 6:14 ` David Kastrup
2007-08-03 8:20 ` Johan Herland
2007-08-01 22:03 ` Theodore Tso [this message]
2007-08-01 22:49 ` Brandon Casey
2007-08-02 4:02 ` Allan Wind
2007-08-02 4:13 ` Linus Torvalds
2007-08-01 22:18 ` Jakub Narebski
2007-08-02 11:19 ` Jakub Narebski
2007-08-02 18:08 ` Ramsay Jones
2007-08-01 8:33 ` Jakub Narebski
2007-08-01 8:48 ` Junio C Hamano
2007-08-01 23:51 ` Jakub Narebski
2007-08-01 2:17 ` Shawn O. Pearce
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=20070801220350.GD28106@thunk.org \
--to=tytso@mit.edu \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jnareb@gmail.com \
--cc=torvalds@linux-foundation.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;
as well as URLs for NNTP newsgroup(s).