Hello,

Due to recent discussions about possible sync failures I started looking
at the cluster code again and  noticed that Fossil does not crosslink in
clusters. I noticed that it causes at least these 2 problems:

1)  fossil test-clusters  returns  that all  artifacts are  unreachable,
because the last cluster in the unclustered table is not crosslinked, so
it has nothing to begin the search with:

$ fossil test-clusters | head -1
7079 unreachable artifacts:
$ fossil dbstat | grep artifact-count
artifact-count:    7080 (stored as 5079 full text and 2001 delta blobs)

This is because the following blocks of code filter out artifacts in the
unclustered table that don't appear to be clusters:

http://www.fossil-scm.org/index.html/artifact/f0c44f8f0a5d941f1b59bbaa6ef1266b59d50a68?txt=1&ln=749,752%20783,784


2) fossil test-describe-artifacts list the clusters as ``unknown'':

$ fossil test-desc | grep unknown
  79c0daa7347cea5b unknown
$ fossil artifact 79c0daa7347cea5b
M 046a1e3d9458a3a6347669757a89013d5b8d9d69
...

This is because the  first block of code doesn't find  them, so they are
added as unknown in the second:

http://www.fossil-scm.org/index.html/artifact/aa78af37cb3226cc56c955edfc28ba9094f0947b?txt=1&ln=841,850%20912,925


I  think the  following  fix  is correct,  but  I'm  less familiar  with
crosslinking so I would appreciate another set of eyes:

http://www.fossil-scm.org/index.html/info/81bdb687649f43b3

I  don't think  this will  actually  fix the  problem mentioned,  mainly
because I haven't been able to reproduce it.

Thanks,

Andy
-- 
TAI64 timestamp: 40000000565fffaf


_______________________________________________
fossil-dev mailing list
fossil-dev@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/fossil-dev

Reply via email to