Fossil SCM

Display a list of symbolic tags associated with each check-in on the timeline.

drh 2009-01-20 00:27 trunk
Commit fbbd0318bd26e756e88d974424afe67b42f570e1
1 file changed +22 -5
+22 -5
--- src/timeline.c
+++ src/timeline.c
@@ -88,14 +88,15 @@
8888
** 5. Number of non-merge children
8989
** 6. Number of parents
9090
** 7. True if is a leaf
9191
** 8. background color
9292
** 9. type ("ci", "w")
93
+** 10. list of symbolic tags.
9394
*/
9495
void www_print_timeline(
9596
Stmt *pQuery
96
- ){
97
+){
9798
int wikiFlags;
9899
int mxWikiLen;
99100
Blob comment;
100101
char zPrevDate[20];
101102
zPrevDate[0] = 0;
@@ -121,10 +122,11 @@
121122
int isLeaf = db_column_int(pQuery, 7);
122123
const char *zBgClr = db_column_text(pQuery, 8);
123124
const char *zDate = db_column_text(pQuery, 2);
124125
const char *zType = db_column_text(pQuery, 9);
125126
const char *zUser = db_column_text(pQuery, 4);
127
+ const char *zTagList = db_column_text(pQuery, 10);
126128
db_multi_exec("INSERT OR IGNORE INTO seen VALUES(%d)", rid);
127129
if( memcmp(zDate, zPrevDate, 10) ){
128130
sprintf(zPrevDate, "%.10s", zDate);
129131
@ <tr><td colspan=3>
130132
@ <div class="divider">%s(zPrevDate)</div>
@@ -163,11 +165,15 @@
163165
blob_reset(&truncated);
164166
}else{
165167
wiki_convert(&comment, 0, wikiFlags);
166168
}
167169
blob_reset(&comment);
168
- @ (by %h(zUser))</td></tr>
170
+ if( zTagList && zTagList[0] ){
171
+ @ (user: %h(zUser), tags: %h(zTagList))</td></tr>
172
+ }else{
173
+ @ (user: %h(zUser))</td></tr>
174
+ }
169175
}
170176
@ </table>
171177
}
172178
173179
/*
@@ -183,11 +189,12 @@
183189
@ user TEXT,
184190
@ nchild INTEGER,
185191
@ nparent INTEGER,
186192
@ isleaf BOOLEAN,
187193
@ bgcolor TEXT,
188
- @ etype TEXT
194
+ @ etype TEXT,
195
+ @ taglist TEXT
189196
@ )
190197
;
191198
db_multi_exec(zSql);
192199
}
193200
@@ -205,11 +212,14 @@
205212
@ coalesce(euser, user),
206213
@ (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim=1),
207214
@ (SELECT count(*) FROM plink WHERE cid=blob.rid),
208215
@ NOT EXISTS (SELECT 1 FROM plink WHERE pid=blob.rid),
209216
@ coalesce(bgcolor, brbgcolor),
210
- @ event.type
217
+ @ event.type,
218
+ @ (SELECT group_concat(substr(tagname,5), ', ') FROM tag, tagxref
219
+ @ WHERE tagname GLOB 'sym-*' AND tag.tagid=tagxref.tagid
220
+ @ AND tagxref.rid=blob.rid AND tagxref.tagtype>0)
211221
@ FROM event JOIN blob
212222
@ WHERE blob.rid=event.objid
213223
;
214224
return zBaseSql;
215225
}
@@ -584,11 +594,18 @@
584594
static const char zBaseSql[] =
585595
@ SELECT
586596
@ blob.rid,
587597
@ uuid,
588598
@ datetime(event.mtime,'localtime'),
589
- @ coalesce(ecomment,comment) || ' (by ' || coalesce(euser,user,'?') ||')',
599
+ @ coalesce(ecomment,comment)
600
+ @ || ' (user: ' || coalesce(euser,user,'?')
601
+ @ || (SELECT case when length(x)>0 then ' tags: ' || x else '' end
602
+ @ FROM (SELECT group_concat(substr(tagname,5), ', ') AS x
603
+ @ FROM tag, tagxref
604
+ @ WHERE tagname GLOB 'sym-*' AND tag.tagid=tagxref.tagid
605
+ @ AND tagxref.rid=blob.rid AND tagxref.tagtype>0))
606
+ @ || ')',
590607
@ (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim),
591608
@ (SELECT count(*) FROM plink WHERE cid=blob.rid)
592609
@ FROM event, blob
593610
@ WHERE blob.rid=event.objid
594611
;
595612
--- src/timeline.c
+++ src/timeline.c
@@ -88,14 +88,15 @@
88 ** 5. Number of non-merge children
89 ** 6. Number of parents
90 ** 7. True if is a leaf
91 ** 8. background color
92 ** 9. type ("ci", "w")
 
93 */
94 void www_print_timeline(
95 Stmt *pQuery
96 ){
97 int wikiFlags;
98 int mxWikiLen;
99 Blob comment;
100 char zPrevDate[20];
101 zPrevDate[0] = 0;
@@ -121,10 +122,11 @@
121 int isLeaf = db_column_int(pQuery, 7);
122 const char *zBgClr = db_column_text(pQuery, 8);
123 const char *zDate = db_column_text(pQuery, 2);
124 const char *zType = db_column_text(pQuery, 9);
125 const char *zUser = db_column_text(pQuery, 4);
 
126 db_multi_exec("INSERT OR IGNORE INTO seen VALUES(%d)", rid);
127 if( memcmp(zDate, zPrevDate, 10) ){
128 sprintf(zPrevDate, "%.10s", zDate);
129 @ <tr><td colspan=3>
130 @ <div class="divider">%s(zPrevDate)</div>
@@ -163,11 +165,15 @@
163 blob_reset(&truncated);
164 }else{
165 wiki_convert(&comment, 0, wikiFlags);
166 }
167 blob_reset(&comment);
168 @ (by %h(zUser))</td></tr>
 
 
 
 
169 }
170 @ </table>
171 }
172
173 /*
@@ -183,11 +189,12 @@
183 @ user TEXT,
184 @ nchild INTEGER,
185 @ nparent INTEGER,
186 @ isleaf BOOLEAN,
187 @ bgcolor TEXT,
188 @ etype TEXT
 
189 @ )
190 ;
191 db_multi_exec(zSql);
192 }
193
@@ -205,11 +212,14 @@
205 @ coalesce(euser, user),
206 @ (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim=1),
207 @ (SELECT count(*) FROM plink WHERE cid=blob.rid),
208 @ NOT EXISTS (SELECT 1 FROM plink WHERE pid=blob.rid),
209 @ coalesce(bgcolor, brbgcolor),
210 @ event.type
 
 
 
211 @ FROM event JOIN blob
212 @ WHERE blob.rid=event.objid
213 ;
214 return zBaseSql;
215 }
@@ -584,11 +594,18 @@
584 static const char zBaseSql[] =
585 @ SELECT
586 @ blob.rid,
587 @ uuid,
588 @ datetime(event.mtime,'localtime'),
589 @ coalesce(ecomment,comment) || ' (by ' || coalesce(euser,user,'?') ||')',
 
 
 
 
 
 
 
590 @ (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim),
591 @ (SELECT count(*) FROM plink WHERE cid=blob.rid)
592 @ FROM event, blob
593 @ WHERE blob.rid=event.objid
594 ;
595
--- src/timeline.c
+++ src/timeline.c
@@ -88,14 +88,15 @@
88 ** 5. Number of non-merge children
89 ** 6. Number of parents
90 ** 7. True if is a leaf
91 ** 8. background color
92 ** 9. type ("ci", "w")
93 ** 10. list of symbolic tags.
94 */
95 void www_print_timeline(
96 Stmt *pQuery
97 ){
98 int wikiFlags;
99 int mxWikiLen;
100 Blob comment;
101 char zPrevDate[20];
102 zPrevDate[0] = 0;
@@ -121,10 +122,11 @@
122 int isLeaf = db_column_int(pQuery, 7);
123 const char *zBgClr = db_column_text(pQuery, 8);
124 const char *zDate = db_column_text(pQuery, 2);
125 const char *zType = db_column_text(pQuery, 9);
126 const char *zUser = db_column_text(pQuery, 4);
127 const char *zTagList = db_column_text(pQuery, 10);
128 db_multi_exec("INSERT OR IGNORE INTO seen VALUES(%d)", rid);
129 if( memcmp(zDate, zPrevDate, 10) ){
130 sprintf(zPrevDate, "%.10s", zDate);
131 @ <tr><td colspan=3>
132 @ <div class="divider">%s(zPrevDate)</div>
@@ -163,11 +165,15 @@
165 blob_reset(&truncated);
166 }else{
167 wiki_convert(&comment, 0, wikiFlags);
168 }
169 blob_reset(&comment);
170 if( zTagList && zTagList[0] ){
171 @ (user: %h(zUser), tags: %h(zTagList))</td></tr>
172 }else{
173 @ (user: %h(zUser))</td></tr>
174 }
175 }
176 @ </table>
177 }
178
179 /*
@@ -183,11 +189,12 @@
189 @ user TEXT,
190 @ nchild INTEGER,
191 @ nparent INTEGER,
192 @ isleaf BOOLEAN,
193 @ bgcolor TEXT,
194 @ etype TEXT,
195 @ taglist TEXT
196 @ )
197 ;
198 db_multi_exec(zSql);
199 }
200
@@ -205,11 +212,14 @@
212 @ coalesce(euser, user),
213 @ (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim=1),
214 @ (SELECT count(*) FROM plink WHERE cid=blob.rid),
215 @ NOT EXISTS (SELECT 1 FROM plink WHERE pid=blob.rid),
216 @ coalesce(bgcolor, brbgcolor),
217 @ event.type,
218 @ (SELECT group_concat(substr(tagname,5), ', ') FROM tag, tagxref
219 @ WHERE tagname GLOB 'sym-*' AND tag.tagid=tagxref.tagid
220 @ AND tagxref.rid=blob.rid AND tagxref.tagtype>0)
221 @ FROM event JOIN blob
222 @ WHERE blob.rid=event.objid
223 ;
224 return zBaseSql;
225 }
@@ -584,11 +594,18 @@
594 static const char zBaseSql[] =
595 @ SELECT
596 @ blob.rid,
597 @ uuid,
598 @ datetime(event.mtime,'localtime'),
599 @ coalesce(ecomment,comment)
600 @ || ' (user: ' || coalesce(euser,user,'?')
601 @ || (SELECT case when length(x)>0 then ' tags: ' || x else '' end
602 @ FROM (SELECT group_concat(substr(tagname,5), ', ') AS x
603 @ FROM tag, tagxref
604 @ WHERE tagname GLOB 'sym-*' AND tag.tagid=tagxref.tagid
605 @ AND tagxref.rid=blob.rid AND tagxref.tagtype>0))
606 @ || ')',
607 @ (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim),
608 @ (SELECT count(*) FROM plink WHERE cid=blob.rid)
609 @ FROM event, blob
610 @ WHERE blob.rid=event.objid
611 ;
612

Keyboard Shortcuts

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