Diff
Not logged in

Differences From:

File src/checkin.c part of check-in [ac1dea8eac] - Fix a bug in the "rm" command. Delete an obsolete documentation file. by drh on 2007-07-24 13:00:19. [view]

To:

File src/checkin.c part of check-in [5c3e87171a] - Fix a problem in the commit logic that caused it to ignore merge changes. Add another test to the commit to detect future problems of a similar nature. by drh on 2007-08-01 12:17:14. [view]

@@ -271,9 +271,9 @@
   zDate = db_text(0, "SELECT datetime('now')");
   zDate[10] = 'T';
   blob_appendf(&manifest, "D %s\n", zDate);
   db_prepare(&q,
-    "SELECT pathname, uuid FROM vfile JOIN blob USING (rid)"
+    "SELECT pathname, uuid FROM vfile JOIN blob ON vfile.mrid=blob.rid"
     " WHERE NOT deleted AND vfile.vid=%d"
     " ORDER BY 1", vid);
   while( db_step(&q)==SQLITE_ROW ){
     const char *zName = db_column_text(&q, 0);
@@ -322,8 +322,12 @@
   /* Verify that the tree checksum is unchanged */
   vfile_aggregate_checksum_repository(nvid, &cksum2);
   if( blob_compare(&cksum1, &cksum2) ){
     fossil_panic("tree checksum does not match repository after commit");
+  }
+  vfile_aggregate_checksum_manifest(nvid, &cksum2);
+  if( blob_compare(&cksum1, &cksum2) ){
+    fossil_panic("tree checksum does not match manifest after commit");
   }
   vfile_aggregate_checksum_disk(nvid, &cksum2);
   if( blob_compare(&cksum1, &cksum2) ){
     fossil_panic("tree checksums before and after commit do not match");