On Mon, Jan 12, 2015 at 12:43:28PM +0100, Stephan Beal wrote:
> > However, Fossil puts both filenames (which are content), and the indicator
> > of whether delta compression is used, in the same structure, and changes
> > that structure depending on whether delta compression is used, and the hash
> > of that full structure is used as a content-UUID in future content. This is
> > the problem, just like changing a blob's UUID depending on whether the blob
> > is gzip-compressed would be a problem.
> >
> 
> Correct. To be fair: B-cards (manifest/delta compression) were added long
> after the initial manifest design, and had to be done in a compatible
> manner.

Actually, incorrect. The manifest does *not* record whether delta
compression is used or not. That is recorded in the database and an
implementation detail of the blob table. The manifest only stores *base*
manifest references, which is a partial version of full incremental
manifest. The advantage of the choosen schema is that to compute the
full manifest of a given version, only two "partial" manifests need to
be processed -- the manifest itself and the referenced base version. The
downside is that for larger trees, the incremental manifests can still
sum up to quite a bit text, which makes rebuild very slow.

Joerg
_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to