View Ticket
Not logged in
Ticket UUID: 3f748ac12ce43743dfd803baa531152c927ead2f
Title: reconstruct or deconstruct failure
Status: Fixed Type: Code_Defect
Severity: Priority:
Subsystem: Resolution: Works_As_Designed
Last Modified: 2010-09-29 17:14:55
Version Found In: 4a01787609
Description & Comments:
fossil reconstruct fails right after fossil deconstruct. running fossil deconstruct ~/artifactdir from within a fossil source checkout and then fossil reconstruct clone.fossil ~/artifactdir fails. Fossil does create clone.fossil but most of the tables contained within are empty. fossil ui clone.fossil brings up an empty project with nothing in its timeline. I've also tried fossil deconstruct -R fossil.fossil ~/artifactdir instead of being inside of a checkout as above. After running deconstruct the artifact directory is populated with artifacts and a cursory check against fossil ui shows that they contain the right things. So I'm only guessing that reconstruct is the problem...

wolfgang added on 2010-09-28 04:46:30:
i tested successfully a deconstruct(into a local directory of checkout) / reconstruct(into std-dir of my multi repo. server) of my clone of fossil-scm.org.

the reconstructed repository worked. some things to mention:

  • the number of artifacts files matches the number of artifacts displaed on the stat page
  • the new repo-file was much bigger than the original; the stat page shows a big number of free pages in the sqlite db

so i think too, it should be a problem of reconstruct, but i don´t understand this part of the code :-(


wolfgang added on 2010-09-28 05:28:29:
i get the same error, if i use the standard deconstruct with subdirectories, named like the first 2 chars from the uuid.

if exporting with -L 0 in a flat list of files, it works.

the current implemenation of reconstruct ignores subdirectories and reads files only in the given dir, not recursing into the subdirs:

      if( file_isdir(pEntry->d_name)==1 ){
        continue;
      }

with checkin [92f8cefcc8] i've extended the command help with notes about the flat import. i think, it´s not necessary to implement recursion in reconstruct.


wolfgang added on 2010-09-29 17:14:55:
on trunk: recursiv version of reconstruct implemented