gnu-arch-users
[Top][All Lists]
Advanced

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

Re: [Gnu-arch-users] On incompetent uses of English


From: Robert Collins
Subject: Re: [Gnu-arch-users] On incompetent uses of English
Date: Sat, 10 Dec 2005 08:44:12 +1100

Trying again with an address the listserv likes.

On Fri, 2005-12-09 at 16:50 +0900, Stephen J. Turnbull wrote:
> I disagree.  The only case where rm -rf is reasonable is in the case
> where the content is not corrupt but there's no simple way to resnap
> the inodes.  I think it's reasonable for you to want this, but if Stefan's
> idea about resnapping the links works, wouldn't that be even better?

In arch 1 'resnapping' the inode signature is definately doable, if you
care to. In the simplest form just store the {hash of choice} in the
index file for the revision, and consult that to determine if content
has changed. Oh and store the permissions for the files and reapply
those. Oh, and there are a couple more little gotchas but nothing
insurmountable. 

> If the content is corrupt, you always want to know why.  Maybe most of
> the time the answer is trivial (a link-unsnapping editor) or it isn't
> worth the effort for most people to actually look and find out.  But
> tla should _never_ presume to make that judgment.  It should preserve
> the information until explicitly told to destroy it.

Well, for user created information I completely agree. But if you
consider the revision library a leaked-abstraction (as I do), then I
think its reasonable for tla to manage it itself. However I couldn't
find a sane way of doing that in baz... (If memory serves, baz deletes
corrupt *pristines*, not corrupt revision library entries. The rationale
was that we saw many many users move source trees from fs to fs, moving
of revision libraries was much less common, and is subject to a much
greater chance of racing with other operations - atomic renames do not
prevent breaking other processes that are accessing a revlib.)

For a more ambitious improvement on revlibs, consider
http://wiki.gnuarch.org/Win32FriendlyFormats which describes a rev lib
that does not have one-inode per file per revision, rather has one-inode
per file-content referenced. This gives you substantially better disk
utilisation/performance on some common file systems like ext3, NTFS and
HFS Plus. This format can definately be improved upon, it was still in
discussion when we decided to focus on the bzr codebase. That format was
inspired by the first storage format bzr used, and is very similar to
git/arch 2.0.

Rob

-- 
GPG key available at: <http://www.robertcollins.net/keys.txt>.

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

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