Fossil SCM
checkin command lost merge information if --force option used.
Closed
986daabbc4b969d…
· opened 15 years, 5 months ago
- Type
- Code_Defect
- Priority
- —
- Severity
- Cosmetic
- Resolution
- Overcome_By_Events
- Subsystem
- —
- Created
- Oct. 19, 2010 6:48 a.m.
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);
```
Comments (1)
stephan
3 years, 2 months ago
The corresponding code has been completely overhauled since then.