Fossil SCM
On the "checkout" command, make sure the argument specifies a check-in and not some other object. Ticket [867f23ff79].
Commit
c774e298c3f213f7487fb0ba638edfa3f1b89edf
Parent
0eb08b860c5b851…
1 file changed
+4
-1
+4
-1
| --- src/checkout.c | ||
| +++ src/checkout.c | ||
| @@ -71,11 +71,14 @@ | ||
| 71 | 71 | if( name_to_uuid(&uuid, 1) ){ |
| 72 | 72 | fossil_panic(g.zErrMsg); |
| 73 | 73 | } |
| 74 | 74 | vid = db_int(0, "SELECT rid FROM blob WHERE uuid=%B", &uuid); |
| 75 | 75 | if( vid==0 ){ |
| 76 | - fossil_panic("no such version: %s", g.argv[2]); | |
| 76 | + fossil_fatal("no such check-in: %s", g.argv[2]); | |
| 77 | + } | |
| 78 | + if( !db_exists("SELECT 1 FROM mlink WHERE mid=%d", vid) ){ | |
| 79 | + fossil_fatal("object [%.10s] is not a check-in", blob_str(&uuid)); | |
| 77 | 80 | } |
| 78 | 81 | load_vfile_from_rid(vid); |
| 79 | 82 | return vid; |
| 80 | 83 | } |
| 81 | 84 | |
| 82 | 85 |
| --- src/checkout.c | |
| +++ src/checkout.c | |
| @@ -71,11 +71,14 @@ | |
| 71 | if( name_to_uuid(&uuid, 1) ){ |
| 72 | fossil_panic(g.zErrMsg); |
| 73 | } |
| 74 | vid = db_int(0, "SELECT rid FROM blob WHERE uuid=%B", &uuid); |
| 75 | if( vid==0 ){ |
| 76 | fossil_panic("no such version: %s", g.argv[2]); |
| 77 | } |
| 78 | load_vfile_from_rid(vid); |
| 79 | return vid; |
| 80 | } |
| 81 | |
| 82 |
| --- src/checkout.c | |
| +++ src/checkout.c | |
| @@ -71,11 +71,14 @@ | |
| 71 | if( name_to_uuid(&uuid, 1) ){ |
| 72 | fossil_panic(g.zErrMsg); |
| 73 | } |
| 74 | vid = db_int(0, "SELECT rid FROM blob WHERE uuid=%B", &uuid); |
| 75 | if( vid==0 ){ |
| 76 | fossil_fatal("no such check-in: %s", g.argv[2]); |
| 77 | } |
| 78 | if( !db_exists("SELECT 1 FROM mlink WHERE mid=%d", vid) ){ |
| 79 | fossil_fatal("object [%.10s] is not a check-in", blob_str(&uuid)); |
| 80 | } |
| 81 | load_vfile_from_rid(vid); |
| 82 | return vid; |
| 83 | } |
| 84 | |
| 85 |