Re: More problems...
- From
Petr Baudis <pasky@ucw.cz>
- Date
- May 3, 2005, 01:48 UTC
- Message-ID
- <20050503014816.GQ20818@pasky.ji.cz>
- In-Reply-To
- <Pine.LNX.4.58.0505021509530.3594@ppc970.osdl.org>
Dear diary, on Tue, May 03, 2005 at 12:19:16AM CEST, I got a letter where Linus Torvalds <torvalds@osdl.org> told me that...
> But for "normal" situations, where you have a tree or two, the hardlinking > win might not be big enough to warrant the maintenance headache. With > hardlinking, you _do_ need to "trust" the other trees to some degree.
As long as the trees aren't yours and you aren't doing something really horrible with them...
$ time git-local-pull -a -l $(cat ~/git-devel/.git/HEAD) ~/git-devel/.git/ real 0m0.332s
$ time git-local-pull -a $(cat ~/git-devel/.git/HEAD) ~/git-devel/.git/ real 0m4.306s
And this is only 13M Cogito objects database. I think one of the important things is to encourage branching, therefore it must be fast enough; that's why I really wanted to do hardlinks. The disk space is important, but the speed hit probably equally (if not more) so.
BTW, the object database files should have 0444 or such; they really _are_ read-only and making them so mode-wise could help against some mistakes too.
It's clear that Cogito should have a way to choose whether to hardlink or copy; the question is which one should be the default one and how should it be specified. I thought about using file:// vs. just local path to differentiate between copy and hardlinking, but that'd be totally non-obvious, therefore bad UI-wise.
BTW, I've just committed support for pulling from remote repositories over the HTTP and SSH protocols (http://your.git/repo, git+ssh://root@git.nasa.gov/srv/git/mars) (note that I was unable to test the SSH stuff properly now; success reports or patches welcome). Also, the local hardlinking access is now done over git-local-pull, therefore the cp errors should go away now.
I'm not yet decided whether locations like
kernel.org:/pub/scm/cogito/cogito.git
should invoke rsync, rpull, throw an error or print a fortune cookie.
-- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor