Fossil SCM

On the "checkout" command, make sure the argument specifies a check-in and not some other object. Ticket [867f23ff79].

drh 2009-09-18 20:58 trunk
Commit c774e298c3f213f7487fb0ba638edfa3f1b89edf
1 file changed +4 -1
+4 -1
--- src/checkout.c
+++ src/checkout.c
@@ -71,11 +71,14 @@
7171
if( name_to_uuid(&uuid, 1) ){
7272
fossil_panic(g.zErrMsg);
7373
}
7474
vid = db_int(0, "SELECT rid FROM blob WHERE uuid=%B", &uuid);
7575
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));
7780
}
7881
load_vfile_from_rid(vid);
7982
return vid;
8083
}
8184
8285
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button