From: Avery Pennarun <apenwarr@gmail.com>
To: Martin Geisler <mg@lazybytes.net>
Cc: Harry Putnam <reader@newsguy.com>,
bazaar@lists.canonical.com, mercurial@selenic.com,
git@vger.kernel.org
Subject: Re: About single user setup for lightweights
Date: Fri, 19 Mar 2010 13:14:11 -0400 [thread overview]
Message-ID: <32541b131003191014u6439f0dhe90eca77f42e24dd@mail.gmail.com> (raw)
In-Reply-To: <87k4t81vt8.fsf@hbox.dyndns.org>
On Fri, Mar 19, 2010 at 5:53 AM, Martin Geisler <mg@lazybytes.net> wrote:
> Avery Pennarun <apenwarr@gmail.com> writes:
>> git sucks at handling large binary files (>50 megs or so) unless you
>> have boatloads of RAM. If your binary files are moderately sized (a
>> few megs) then it'll probably be reasonably efficient. I don't know
>> about hg and bzr for memory usage.
>
> Mercurial also uses lots of RAM, way more than I had hoped. I did some
> tests with this recently:
>
> http://markmail.org/message/uxqtmmnkyimxse5b
>
> They show a factor 3-6 blowup when working with a 256 MB file.
>
> We don't really recommend storing such large files in Mercurial. Instead
> we recommend storing the files outside of the tree, e.g., on a server
> with a huge disk. The bfiles extension can do this:
>
> http://mercurial.selenic.com/wiki/BfilesExtension
You might find my "bup" program entertaining:
http://github.com/apenwarr/bup/
It happens to use the git file format, but the hashsplitting algorithm
would work with any repo and the code is written mostly in python.
Because it breaks larges files into chunks, it tends to avoid the
memory growth problems (at the cost of somewhat worse compression and
deltas). At least you can then store them in your repository.
bup is intended for use as a full-system backup tool, but it would be
interesting to take the same techniques and use them to solve the
general case of large files in git/hg.
Have fun,
Avery
next prev parent reply other threads:[~2010-03-19 17:14 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-19 1:53 About single user setup for lightweights Harry Putnam
2010-03-19 2:13 ` Avery Pennarun
2010-03-19 9:53 ` Martin Geisler
2010-03-19 17:14 ` Avery Pennarun [this message]
2010-03-19 4:01 ` Ben Finney
2010-03-19 14:08 ` Sitaram Chamarty
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=32541b131003191014u6439f0dhe90eca77f42e24dd@mail.gmail.com \
--to=apenwarr@gmail.com \
--cc=bazaar@lists.canonical.com \
--cc=git@vger.kernel.org \
--cc=mercurial@selenic.com \
--cc=mg@lazybytes.net \
--cc=reader@newsguy.com \
/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).