Fossil SCM
Allow the -f option on "fossil commit" to override the clock skew alarm. Ticket [a0756511991399b41255256]
Commit
f1d309ccd7e829f464d95c556c00739d2709b7a6
Parent
1212f0b0c6da9ed…
1 file changed
+19
-17
+19
-17
| --- src/checkin.c | ||
| +++ src/checkin.c | ||
| @@ -513,12 +513,12 @@ | ||
| 513 | 513 | " WHERE datetime(mtime)>=%Q" |
| 514 | 514 | " AND type='ci' AND objid=%d", |
| 515 | 515 | zDate, rid |
| 516 | 516 | ); |
| 517 | 517 | if( b ){ |
| 518 | - fossil_fatal("ancestor check-in [%.10s] (%s) is younger (clock skew?)", | |
| 519 | - zUuid, zDate); | |
| 518 | + fossil_fatal("ancestor check-in [%.10s] (%s) is younger (clock skew?)" | |
| 519 | + " Use -f to override.", zUuid, zDate); | |
| 520 | 520 | } |
| 521 | 521 | #endif |
| 522 | 522 | } |
| 523 | 523 | |
| 524 | 524 | /* |
| @@ -799,25 +799,27 @@ | ||
| 799 | 799 | } |
| 800 | 800 | blob_reset(&filename); |
| 801 | 801 | db_finalize(&q); |
| 802 | 802 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid); |
| 803 | 803 | blob_appendf(&manifest, "P %s", zUuid); |
| 804 | - checkin_verify_younger(vid, zUuid, zDate); | |
| 805 | - | |
| 806 | - db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id"); | |
| 807 | - db_bind_int(&q2, ":id", 0); | |
| 808 | - while( db_step(&q2)==SQLITE_ROW ){ | |
| 809 | - int mid = db_column_int(&q2, 0); | |
| 810 | - if( !g.markPrivate && content_is_private(mid) ) continue; | |
| 811 | - zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid); | |
| 812 | - if( zUuid ){ | |
| 813 | - blob_appendf(&manifest, " %s", zUuid); | |
| 814 | - checkin_verify_younger(mid, zUuid, zDate); | |
| 815 | - free(zUuid); | |
| 816 | - } | |
| 817 | - } | |
| 818 | - db_finalize(&q2); | |
| 804 | + | |
| 805 | + if( !forceFlag ){ | |
| 806 | + checkin_verify_younger(vid, zUuid, zDate); | |
| 807 | + db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id"); | |
| 808 | + db_bind_int(&q2, ":id", 0); | |
| 809 | + while( db_step(&q2)==SQLITE_ROW ){ | |
| 810 | + int mid = db_column_int(&q2, 0); | |
| 811 | + if( !g.markPrivate && content_is_private(mid) ) continue; | |
| 812 | + zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid); | |
| 813 | + if( zUuid ){ | |
| 814 | + blob_appendf(&manifest, " %s", zUuid); | |
| 815 | + checkin_verify_younger(mid, zUuid, zDate); | |
| 816 | + free(zUuid); | |
| 817 | + } | |
| 818 | + } | |
| 819 | + db_finalize(&q2); | |
| 820 | + } | |
| 819 | 821 | |
| 820 | 822 | blob_appendf(&manifest, "\n"); |
| 821 | 823 | blob_appendf(&manifest, "R %b\n", &cksum1); |
| 822 | 824 | if( zBranch && zBranch[0] ){ |
| 823 | 825 | Stmt q; |
| 824 | 826 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -513,12 +513,12 @@ | |
| 513 | " WHERE datetime(mtime)>=%Q" |
| 514 | " AND type='ci' AND objid=%d", |
| 515 | zDate, rid |
| 516 | ); |
| 517 | if( b ){ |
| 518 | fossil_fatal("ancestor check-in [%.10s] (%s) is younger (clock skew?)", |
| 519 | zUuid, zDate); |
| 520 | } |
| 521 | #endif |
| 522 | } |
| 523 | |
| 524 | /* |
| @@ -799,25 +799,27 @@ | |
| 799 | } |
| 800 | blob_reset(&filename); |
| 801 | db_finalize(&q); |
| 802 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid); |
| 803 | blob_appendf(&manifest, "P %s", zUuid); |
| 804 | checkin_verify_younger(vid, zUuid, zDate); |
| 805 | |
| 806 | db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id"); |
| 807 | db_bind_int(&q2, ":id", 0); |
| 808 | while( db_step(&q2)==SQLITE_ROW ){ |
| 809 | int mid = db_column_int(&q2, 0); |
| 810 | if( !g.markPrivate && content_is_private(mid) ) continue; |
| 811 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid); |
| 812 | if( zUuid ){ |
| 813 | blob_appendf(&manifest, " %s", zUuid); |
| 814 | checkin_verify_younger(mid, zUuid, zDate); |
| 815 | free(zUuid); |
| 816 | } |
| 817 | } |
| 818 | db_finalize(&q2); |
| 819 | |
| 820 | blob_appendf(&manifest, "\n"); |
| 821 | blob_appendf(&manifest, "R %b\n", &cksum1); |
| 822 | if( zBranch && zBranch[0] ){ |
| 823 | Stmt q; |
| 824 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -513,12 +513,12 @@ | |
| 513 | " WHERE datetime(mtime)>=%Q" |
| 514 | " AND type='ci' AND objid=%d", |
| 515 | zDate, rid |
| 516 | ); |
| 517 | if( b ){ |
| 518 | fossil_fatal("ancestor check-in [%.10s] (%s) is younger (clock skew?)" |
| 519 | " Use -f to override.", zUuid, zDate); |
| 520 | } |
| 521 | #endif |
| 522 | } |
| 523 | |
| 524 | /* |
| @@ -799,25 +799,27 @@ | |
| 799 | } |
| 800 | blob_reset(&filename); |
| 801 | db_finalize(&q); |
| 802 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid); |
| 803 | blob_appendf(&manifest, "P %s", zUuid); |
| 804 | |
| 805 | if( !forceFlag ){ |
| 806 | checkin_verify_younger(vid, zUuid, zDate); |
| 807 | db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id"); |
| 808 | db_bind_int(&q2, ":id", 0); |
| 809 | while( db_step(&q2)==SQLITE_ROW ){ |
| 810 | int mid = db_column_int(&q2, 0); |
| 811 | if( !g.markPrivate && content_is_private(mid) ) continue; |
| 812 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid); |
| 813 | if( zUuid ){ |
| 814 | blob_appendf(&manifest, " %s", zUuid); |
| 815 | checkin_verify_younger(mid, zUuid, zDate); |
| 816 | free(zUuid); |
| 817 | } |
| 818 | } |
| 819 | db_finalize(&q2); |
| 820 | } |
| 821 | |
| 822 | blob_appendf(&manifest, "\n"); |
| 823 | blob_appendf(&manifest, "R %b\n", &cksum1); |
| 824 | if( zBranch && zBranch[0] ){ |
| 825 | Stmt q; |
| 826 |