Diff
Not logged in

Differences From:

File src/manifest.c part of check-in [33c31f73cd] - Record whether or not files have their execute permission bit set. Set or clear the execute permission bit upon checkout. by drh on 2008-02-21 14:27:34. Also file src/manifest.c part of check-in [588bb7cd73] - Merged to ed26056bb5. by aku on 2008-02-24 18:50:35. [view]

To:

File src/manifest.c part of check-in [0afb5e8e39] - This version is able to clone the entire TCL repository in 12.5 minutes and to rebuild the cloned TCL repository in 2.5 minutes. There is still a lot of performance work to be done, but this is good enough for the time being. by drh on 2008-03-08 14:52:56. [view]

@@ -54,9 +54,8 @@
   Blob content;         /* The original content blob */
   int type;             /* Type of file */
   int mode;             /* Access mode */
   char *zComment;       /* Decoded comment */
-  char zUuid[UUID_SIZE+1];  /* Self UUID */
   double rDate;         /* Time in the "D" line */
   char *zUser;          /* Name of the user */
   char *zRepoCksum;     /* MD5 checksum of the baseline content */
   char *zWiki;          /* Text of the wiki page */
@@ -144,16 +143,12 @@
   int seenHeader = 0;
   int seenZ = 0;
   int i, lineNo=0;
   Blob line, token, a1, a2, a3;
-  Blob selfuuid;
   char cPrevType = 0;
 
   memset(p, 0, sizeof(*p));
   memcpy(&p->content, pContent, sizeof(p->content));
-  sha1sum_blob(&p->content, &selfuuid);
-  memcpy(p->zUuid, blob_buffer(&selfuuid), UUID_SIZE);
-  p->zUuid[UUID_SIZE] = 0;
   blob_zero(pContent);
   pContent = &p->content;
 
   blob_zero(&a1);
@@ -487,9 +482,9 @@
         }
         if( blob_size(&a2)==UUID_SIZE && validate16(zUuid, UUID_SIZE) ){
           /* A valid uuid */
         }else if( blob_size(&a2)==1 && zUuid[0]=='*' ){
-          zUuid = p->zUuid;
+          zUuid = 0;
         }else{
           goto manifest_syntax_error;
         }
         defossilize(zName);
@@ -824,9 +819,13 @@
   if( m.type==CFTYPE_CONTROL || m.type==CFTYPE_MANIFEST ){
     for(i=0; i<m.nTag; i++){
       int tid;
       int type;
-      tid = uuid_to_rid(m.aTag[i].zUuid, 1);
+      if( m.aTag[i].zUuid ){
+        tid = uuid_to_rid(m.aTag[i].zUuid, 1);
+      }else{
+        tid = rid;
+      }
       switch( m.aTag[i].zName[0] ){
         case '+':  type = 1; break;
         case '*':  type = 2; break;
         case '-':  type = 0; break;