Fossil SCM

Improvements to the "root:TAG" naming option so that TAG can also be a UUID.

drh 2012-09-06 13:52 trunk
Commit 0e9277267f3dc346529be72504314e47a9327bb3
1 file changed +7 -1
+7 -1
--- src/name.c
+++ src/name.c
@@ -158,19 +158,25 @@
158158
159159
/* root:TAG -> The origin of the branch */
160160
if( memcmp(zTag, "root:", 5)==0 ){
161161
Stmt q;
162162
int rc;
163
+ char *zBr;
163164
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);
164169
db_prepare(&q,
165170
"SELECT pid, EXISTS(SELECT 1 FROM tagxref"
166171
" WHERE tagid=%d AND tagtype>0"
167172
" AND value=%Q AND rid=plink.pid)"
168173
" FROM plink"
169174
" WHERE cid=:cid AND isprim",
170
- TAG_BRANCH, &zTag[5]
175
+ TAG_BRANCH, zBr
171176
);
177
+ fossil_free(zBr);
172178
do{
173179
db_reset(&q);
174180
db_bind_int(&q, ":cid", rid);
175181
rc = db_step(&q);
176182
if( rc!=SQLITE_ROW ) break;
177183
--- 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

Keyboard Shortcuts

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