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

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

Re: [Gnu-arch-users] Re: tla on nfs only


From: Aaron Bentley
Subject: Re: [Gnu-arch-users] Re: tla on nfs only
Date: Sun, 14 Mar 2004 23:37:13 -0500
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6b) Gecko/20031221 Thunderbird/0.4

Stefan Monnier wrote:
Obviously we do not need to check for corruption of file FOO if FOO will
not be read in the course of the current operation.

Yes.  Unfortunately, we don't know which files in the working directory have
changed until we look at the revision library.  In that case, we need ALL
the files in the revlib to be uncorrupted.


So you mean that tla does a diff of every single file?
If not how does it avoid it?  AFAIK it avoids it by using
{arch}/,,inode-sigs in the work-tree (not in the revision library)
in order to get a conservative approximation of what might have changed, at
which point it will only do a diff on those files, so it only needs to
check the inode-sig (in the revlib) of those files who failed the
inode-sig-check in the work-tree.
What am I missing?

For each file,
The first check tla does is stats against the revision library. This is the cheapest check it can do. If the files are hardlinks of each other, the working copy hasn't changed. If their sizes differ, the working copy has changed.

If tla still don't know, it checks the file against its inode signature.

If the file doesn't match its inode signature, tla does a whole-file binary comparison.

By this point, tla knows whether the file has changed, and invokes diff if appropriate.

Even if the stats step is skipped, you were advocating removing inode signatures from the working directory, and that will force tla to do a whole-binary comparison of every file against the revlib.

If md5 signatures were implemented, you'd be doing whole-file comparisons against the md5 signatures instead.

Aaron




reply via email to

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