Fossil SCM
fixed error on dir page with unknown checkins
Commit
872f6a45e3338b77ed10ec49598343ff2ae7741d
Parent
f8b8e530f366a5e…
1 file changed
+9
-2
+9
-2
| --- src/browse.c | ||
| +++ src/browse.c | ||
| @@ -106,10 +106,11 @@ | ||
| 106 | 106 | int cnt, i; |
| 107 | 107 | char *zPrefix; |
| 108 | 108 | Stmt q; |
| 109 | 109 | const char *zCI = P("ci"); |
| 110 | 110 | int rid = 0; |
| 111 | + char *zUuid = 0; | |
| 111 | 112 | Blob content; |
| 112 | 113 | Blob dirname; |
| 113 | 114 | Manifest m; |
| 114 | 115 | const char *zSubdirLink; |
| 115 | 116 | |
| @@ -126,10 +127,17 @@ | ||
| 126 | 127 | if( zCI && (rid = name_to_rid(zCI))!=0 && content_get(rid, &content) ){ |
| 127 | 128 | if( !manifest_parse(&m, &content) || m.type!=CFTYPE_MANIFEST ){ |
| 128 | 129 | zCI = 0; |
| 129 | 130 | } |
| 130 | 131 | } |
| 132 | + /* check existing checkin */ | |
| 133 | + if (zCI){ | |
| 134 | + zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); | |
| 135 | + if (!zUuid){ | |
| 136 | + zCI = 0; | |
| 137 | + } | |
| 138 | + } | |
| 131 | 139 | |
| 132 | 140 | /* Compute the title of the page */ |
| 133 | 141 | blob_zero(&dirname); |
| 134 | 142 | if( zD ){ |
| 135 | 143 | blob_append(&dirname, "in directory ", -1); |
| @@ -138,13 +146,12 @@ | ||
| 138 | 146 | }else{ |
| 139 | 147 | blob_append(&dirname, "in the top-level directory", -1); |
| 140 | 148 | zPrefix = ""; |
| 141 | 149 | } |
| 142 | 150 | if( zCI ){ |
| 143 | - char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); | |
| 144 | 151 | char zShort[20]; |
| 145 | - memcpy(zShort, zUuid, 10); | |
| 152 | + memcpy(zShort, zUuid, 1); | |
| 146 | 153 | zShort[10] = 0; |
| 147 | 154 | @ <h2>Files of check-in [<a href="vinfo?name=%T(zUuid)">%s(zShort)</a>] |
| 148 | 155 | @ %s(blob_str(&dirname))</h2> |
| 149 | 156 | zSubdirLink = mprintf("%s/dir?ci=%S&name=%T", g.zTop, zUuid, zPrefix); |
| 150 | 157 | if( zD ){ |
| 151 | 158 |
| --- src/browse.c | |
| +++ src/browse.c | |
| @@ -106,10 +106,11 @@ | |
| 106 | int cnt, i; |
| 107 | char *zPrefix; |
| 108 | Stmt q; |
| 109 | const char *zCI = P("ci"); |
| 110 | int rid = 0; |
| 111 | Blob content; |
| 112 | Blob dirname; |
| 113 | Manifest m; |
| 114 | const char *zSubdirLink; |
| 115 | |
| @@ -126,10 +127,17 @@ | |
| 126 | if( zCI && (rid = name_to_rid(zCI))!=0 && content_get(rid, &content) ){ |
| 127 | if( !manifest_parse(&m, &content) || m.type!=CFTYPE_MANIFEST ){ |
| 128 | zCI = 0; |
| 129 | } |
| 130 | } |
| 131 | |
| 132 | /* Compute the title of the page */ |
| 133 | blob_zero(&dirname); |
| 134 | if( zD ){ |
| 135 | blob_append(&dirname, "in directory ", -1); |
| @@ -138,13 +146,12 @@ | |
| 138 | }else{ |
| 139 | blob_append(&dirname, "in the top-level directory", -1); |
| 140 | zPrefix = ""; |
| 141 | } |
| 142 | if( zCI ){ |
| 143 | char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); |
| 144 | char zShort[20]; |
| 145 | memcpy(zShort, zUuid, 10); |
| 146 | zShort[10] = 0; |
| 147 | @ <h2>Files of check-in [<a href="vinfo?name=%T(zUuid)">%s(zShort)</a>] |
| 148 | @ %s(blob_str(&dirname))</h2> |
| 149 | zSubdirLink = mprintf("%s/dir?ci=%S&name=%T", g.zTop, zUuid, zPrefix); |
| 150 | if( zD ){ |
| 151 |
| --- src/browse.c | |
| +++ src/browse.c | |
| @@ -106,10 +106,11 @@ | |
| 106 | int cnt, i; |
| 107 | char *zPrefix; |
| 108 | Stmt q; |
| 109 | const char *zCI = P("ci"); |
| 110 | int rid = 0; |
| 111 | char *zUuid = 0; |
| 112 | Blob content; |
| 113 | Blob dirname; |
| 114 | Manifest m; |
| 115 | const char *zSubdirLink; |
| 116 | |
| @@ -126,10 +127,17 @@ | |
| 127 | if( zCI && (rid = name_to_rid(zCI))!=0 && content_get(rid, &content) ){ |
| 128 | if( !manifest_parse(&m, &content) || m.type!=CFTYPE_MANIFEST ){ |
| 129 | zCI = 0; |
| 130 | } |
| 131 | } |
| 132 | /* check existing checkin */ |
| 133 | if (zCI){ |
| 134 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); |
| 135 | if (!zUuid){ |
| 136 | zCI = 0; |
| 137 | } |
| 138 | } |
| 139 | |
| 140 | /* Compute the title of the page */ |
| 141 | blob_zero(&dirname); |
| 142 | if( zD ){ |
| 143 | blob_append(&dirname, "in directory ", -1); |
| @@ -138,13 +146,12 @@ | |
| 146 | }else{ |
| 147 | blob_append(&dirname, "in the top-level directory", -1); |
| 148 | zPrefix = ""; |
| 149 | } |
| 150 | if( zCI ){ |
| 151 | char zShort[20]; |
| 152 | memcpy(zShort, zUuid, 1); |
| 153 | zShort[10] = 0; |
| 154 | @ <h2>Files of check-in [<a href="vinfo?name=%T(zUuid)">%s(zShort)</a>] |
| 155 | @ %s(blob_str(&dirname))</h2> |
| 156 | zSubdirLink = mprintf("%s/dir?ci=%S&name=%T", g.zTop, zUuid, zPrefix); |
| 157 | if( zD ){ |
| 158 |