monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] another thought on merkle directories


From: Nathaniel Smith
Subject: Re: [Monotone-devel] another thought on merkle directories
Date: Fri, 10 Jun 2005 00:10:01 -0700
User-agent: Mutt/1.5.9i

On Thu, Jun 09, 2005 at 09:05:23PM -0600, Derek Scherger wrote:
> $ monotone --db foobar.db export $HOME/foobar/repos
> monotone: exporting $HOME/foobar/repos/files
> monotone: exporting $HOME/foobar/repos/manifests
> monotone: exporting $HOME/foobar/repos/revisions
> monotone: exporting $HOME/foobar/repos/keys
> monotone: exporting $HOME/foobar/repos/certs
> 
> which would write all of the files, manifests, revisions, public keys
> and certs from foobar.db to the filesystem, using sha1 hashes as
> filenames. The contents plain text, or base64, gzipped blobs as
> required. Presumably export would be smart enough to only export things
> that don't already exist on the filesystem.

Full-blown "merkle directories" is just this, plus:
  -- we split each directory into subdirectories; so we have
       files/00/
       files/01/
       ...
       files/ff/
     instead of just a flat files/.  This is generally considered a
     good idea anyway.
  -- we write out an advisory file to each directory, giving some
     hashes of the contents of each subdirectory.  This file allows
     dramatically more efficient push/pull operations, while it can be
     ignored by clients that would rather just scan everything by
     hand.
It's actually really not that complicated, I'm sort of surprised that
no-one has done it yet :-)  Especially I'm surprised the git people
haven't picked it up, though I guess their need to use this
representation as their repo as well might cause locking issues on
updating the merkle files.

-- Nathaniel

-- 
In mathematics, it's not enough to read the words
you have to hear the music




reply via email to

[Prev in Thread] Current Thread [Next in Thread]