Fossil SCM

Error when creating a branch from checkin that doesn't have checksum in manifest

Fixed

3bfff6e03bcc5f1… · opened 15 years ago

Type
Code_Defect
Priority
Severity
Important
Resolution
Fixed
Subsystem
Created
March 15, 2011 12:10 p.m.

When parent check-in doesn't have an R-card in manifest, Fossil fails to create a branch from this check-in with error "unable to install new manifest". This is because Fossil creates manifest for a new branch which contains a line: "R " (and no checksum), instead of not adding an R-card at all, and manifest_parse() fails to parse such manifests.

Fix (patch is not against tip, but you get the idea):


--- src/branch.c
+++ src/branch.c
@@ -99,11 +99,13 @@
     }
     blob_append(&branch, "\n", 1);
   }
   zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rootid);
   blob_appendf(&branch, "P %s\n", zUuid);
-  blob_appendf(&branch, "R %s\n", pParent->zRepoCksum);
+  if( pParent->zRepoCksum ){
+    blob_appendf(&branch, "R %s\n", pParent->zRepoCksum);
+  }
   manifest_destroy(pParent);

   /* Add the symbolic branch name and the "branch" tag to identify
   ** this as a new branch */
   if( zColor!=0 ){

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button