View Ticket
Not logged in
Ticket UUID: 986daabbc4b969dd22dc93d183b566f7faf004f9
Title: checkin command lost merge information if --force option used.
Status: Open Type: Code_Defect
Severity: Cosmetic Priority:
Subsystem: Resolution:
Last Modified: 2010-10-19 06:48:59
Version Found In: [f1d309ccd7] 2010-08-29 00:21:09
Description & Comments:
version [f1d309ccd7] or later, checkin --force option disable clock skew alarm.
But if this option specified, checkin_cmd() skip append merged IDs to manifest's "P" card.
It must not skip collect IDs from vmerge table even forceFlag is set.
--- ../7954ccba68/src/checkin.c	2010-10-19 00:28:10.437308800 UTC
+++ src/checkin.c	2010-10-19 15:25:37.979195200 UTC
@@ -826,23 +826,26 @@
   db_finalize(&q);
   zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid);
   blob_appendf(&manifest, "P %s", zUuid);
-
-  if( !forceFlag ){
-    checkin_verify_younger(vid, zUuid, zDate);
-    db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id");
-    db_bind_int(&q2, ":id", 0);
-    while( db_step(&q2)==SQLITE_ROW ){
-      int mid = db_column_int(&q2, 0);
-      if( !g.markPrivate && content_is_private(mid) ) continue;
-      zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid);
-      if( zUuid ){
-        blob_appendf(&manifest, " %s", zUuid);
-        checkin_verify_younger(mid, zUuid, zDate);
-        free(zUuid);
-      }
-    }
-    db_finalize(&q2);
-  }
+  if( !forceFlag ){
+    checkin_verify_younger(vid, zUuid, zDate);
+  }
+
+  db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id");
+  db_bind_int(&q2, ":id", 0);
+  while( db_step(&q2)==SQLITE_ROW ){
+    int mid = db_column_int(&q2, 0);
+    if( !g.markPrivate && content_is_private(mid) ) continue;
+    zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid);
+    if( zUuid ){
+      blob_appendf(&manifest, " %s", zUuid);
+      if( !forceFlag ){
+        checkin_verify_younger(mid, zUuid, zDate);
+      }
+      free(zUuid);
+    }
+  }
+  db_finalize(&q2);

   blob_appendf(&manifest, "\n");
   blob_appendf(&manifest, "R %b\n", &cksum1);