Fossil SCM
Improvements to the "root:TAG" naming option so that TAG can also be a UUID.
Commit
0e9277267f3dc346529be72504314e47a9327bb3
Parent
3db1cf69e583250…
1 file changed
+7
-1
+7
-1
| --- src/name.c | ||
| +++ src/name.c | ||
| @@ -158,19 +158,25 @@ | ||
| 158 | 158 | |
| 159 | 159 | /* root:TAG -> The origin of the branch */ |
| 160 | 160 | if( memcmp(zTag, "root:", 5)==0 ){ |
| 161 | 161 | Stmt q; |
| 162 | 162 | int rc; |
| 163 | + char *zBr; | |
| 163 | 164 | rid = symbolic_name_to_rid(zTag+5, zType); |
| 165 | + zBr = db_text("trunk","SELECT value FROM tagxref" | |
| 166 | + " WHERE rid=%d AND tagid=%d" | |
| 167 | + " AND tagtype>0", | |
| 168 | + rid, TAG_BRANCH); | |
| 164 | 169 | db_prepare(&q, |
| 165 | 170 | "SELECT pid, EXISTS(SELECT 1 FROM tagxref" |
| 166 | 171 | " WHERE tagid=%d AND tagtype>0" |
| 167 | 172 | " AND value=%Q AND rid=plink.pid)" |
| 168 | 173 | " FROM plink" |
| 169 | 174 | " WHERE cid=:cid AND isprim", |
| 170 | - TAG_BRANCH, &zTag[5] | |
| 175 | + TAG_BRANCH, zBr | |
| 171 | 176 | ); |
| 177 | + fossil_free(zBr); | |
| 172 | 178 | do{ |
| 173 | 179 | db_reset(&q); |
| 174 | 180 | db_bind_int(&q, ":cid", rid); |
| 175 | 181 | rc = db_step(&q); |
| 176 | 182 | if( rc!=SQLITE_ROW ) break; |
| 177 | 183 |
| --- src/name.c | |
| +++ src/name.c | |
| @@ -158,19 +158,25 @@ | |
| 158 | |
| 159 | /* root:TAG -> The origin of the branch */ |
| 160 | if( memcmp(zTag, "root:", 5)==0 ){ |
| 161 | Stmt q; |
| 162 | int rc; |
| 163 | rid = symbolic_name_to_rid(zTag+5, zType); |
| 164 | db_prepare(&q, |
| 165 | "SELECT pid, EXISTS(SELECT 1 FROM tagxref" |
| 166 | " WHERE tagid=%d AND tagtype>0" |
| 167 | " AND value=%Q AND rid=plink.pid)" |
| 168 | " FROM plink" |
| 169 | " WHERE cid=:cid AND isprim", |
| 170 | TAG_BRANCH, &zTag[5] |
| 171 | ); |
| 172 | do{ |
| 173 | db_reset(&q); |
| 174 | db_bind_int(&q, ":cid", rid); |
| 175 | rc = db_step(&q); |
| 176 | if( rc!=SQLITE_ROW ) break; |
| 177 |
| --- src/name.c | |
| +++ src/name.c | |
| @@ -158,19 +158,25 @@ | |
| 158 | |
| 159 | /* root:TAG -> The origin of the branch */ |
| 160 | if( memcmp(zTag, "root:", 5)==0 ){ |
| 161 | Stmt q; |
| 162 | int rc; |
| 163 | char *zBr; |
| 164 | rid = symbolic_name_to_rid(zTag+5, zType); |
| 165 | zBr = db_text("trunk","SELECT value FROM tagxref" |
| 166 | " WHERE rid=%d AND tagid=%d" |
| 167 | " AND tagtype>0", |
| 168 | rid, TAG_BRANCH); |
| 169 | db_prepare(&q, |
| 170 | "SELECT pid, EXISTS(SELECT 1 FROM tagxref" |
| 171 | " WHERE tagid=%d AND tagtype>0" |
| 172 | " AND value=%Q AND rid=plink.pid)" |
| 173 | " FROM plink" |
| 174 | " WHERE cid=:cid AND isprim", |
| 175 | TAG_BRANCH, zBr |
| 176 | ); |
| 177 | fossil_free(zBr); |
| 178 | do{ |
| 179 | db_reset(&q); |
| 180 | db_bind_int(&q, ":cid", rid); |
| 181 | rc = db_step(&q); |
| 182 | if( rc!=SQLITE_ROW ) break; |
| 183 |