Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Display a list of symbolic tags associated with each check-in on the timeline. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
fbbd0318bd26e756e88d974424afe67b |
| User & Date: | drh 2009-01-20 00:27:37.000 |
Context
|
2009-01-20
| ||
| 16:51 | Attempting to rationalize the tagging and branching logic. The "branch" command has been resurrected and appears to work now. The "tag branch" command has been removed. Special tags "newbranch" and "closed" used to manage branches. New changes are not well-tested - use with caution. You must "rebuild" when upgrading through this version. ... (check-in: b6e22e62cf user: drh tags: trunk) | |
| 00:27 | Display a list of symbolic tags associated with each check-in on the timeline. ... (check-in: fbbd0318bd user: drh tags: trunk) | |
|
2009-01-15
| ||
| 16:03 | Update SQLite to version 3.6.10. ... (check-in: c002a008e6 user: drh tags: trunk) | |
Changes
Changes to src/timeline.c.
| ︙ | ︙ | |||
86 87 88 89 90 91 92 93 94 95 |
** 3. Comment string
** 4. User
** 5. Number of non-merge children
** 6. Number of parents
** 7. True if is a leaf
** 8. background color
** 9. type ("ci", "w")
*/
void www_print_timeline(
Stmt *pQuery
| > | | 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
** 3. Comment string
** 4. User
** 5. Number of non-merge children
** 6. Number of parents
** 7. True if is a leaf
** 8. background color
** 9. type ("ci", "w")
** 10. list of symbolic tags.
*/
void www_print_timeline(
Stmt *pQuery
){
int wikiFlags;
int mxWikiLen;
Blob comment;
char zPrevDate[20];
zPrevDate[0] = 0;
mxWikiLen = db_get_int("timeline-max-comment", 0);
|
| ︙ | ︙ | |||
119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
int nPChild = db_column_int(pQuery, 5);
int nParent = db_column_int(pQuery, 6);
int isLeaf = db_column_int(pQuery, 7);
const char *zBgClr = db_column_text(pQuery, 8);
const char *zDate = db_column_text(pQuery, 2);
const char *zType = db_column_text(pQuery, 9);
const char *zUser = db_column_text(pQuery, 4);
db_multi_exec("INSERT OR IGNORE INTO seen VALUES(%d)", rid);
if( memcmp(zDate, zPrevDate, 10) ){
sprintf(zPrevDate, "%.10s", zDate);
@ <tr><td colspan=3>
@ <div class="divider">%s(zPrevDate)</div>
@ </td></tr>
}
| > | 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
int nPChild = db_column_int(pQuery, 5);
int nParent = db_column_int(pQuery, 6);
int isLeaf = db_column_int(pQuery, 7);
const char *zBgClr = db_column_text(pQuery, 8);
const char *zDate = db_column_text(pQuery, 2);
const char *zType = db_column_text(pQuery, 9);
const char *zUser = db_column_text(pQuery, 4);
const char *zTagList = db_column_text(pQuery, 10);
db_multi_exec("INSERT OR IGNORE INTO seen VALUES(%d)", rid);
if( memcmp(zDate, zPrevDate, 10) ){
sprintf(zPrevDate, "%.10s", zDate);
@ <tr><td colspan=3>
@ <div class="divider">%s(zPrevDate)</div>
@ </td></tr>
}
|
| ︙ | ︙ | |||
161 162 163 164 165 166 167 |
blob_append(&truncated, "...", 3);
wiki_convert(&truncated, 0, wikiFlags);
blob_reset(&truncated);
}else{
wiki_convert(&comment, 0, wikiFlags);
}
blob_reset(&comment);
| > > > | > | > | 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 |
blob_append(&truncated, "...", 3);
wiki_convert(&truncated, 0, wikiFlags);
blob_reset(&truncated);
}else{
wiki_convert(&comment, 0, wikiFlags);
}
blob_reset(&comment);
if( zTagList && zTagList[0] ){
@ (user: %h(zUser), tags: %h(zTagList))</td></tr>
}else{
@ (user: %h(zUser))</td></tr>
}
}
@ </table>
}
/*
** Create a temporary table suitable for storing timeline data.
*/
static void timeline_temp_table(void){
static const char zSql[] =
@ CREATE TEMP TABLE IF NOT EXISTS timeline(
@ rid INTEGER PRIMARY KEY,
@ uuid TEXT,
@ timestamp TEXT,
@ comment TEXT,
@ user TEXT,
@ nchild INTEGER,
@ nparent INTEGER,
@ isleaf BOOLEAN,
@ bgcolor TEXT,
@ etype TEXT,
@ taglist TEXT
@ )
;
db_multi_exec(zSql);
}
/*
** Return a pointer to a constant string that forms the basis
|
| ︙ | ︙ | |||
203 204 205 206 207 208 209 |
@ datetime(event.mtime,'localtime') AS timestamp,
@ coalesce(ecomment, comment),
@ coalesce(euser, user),
@ (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim=1),
@ (SELECT count(*) FROM plink WHERE cid=blob.rid),
@ NOT EXISTS (SELECT 1 FROM plink WHERE pid=blob.rid),
@ coalesce(bgcolor, brbgcolor),
| | > > > | 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 |
@ datetime(event.mtime,'localtime') AS timestamp,
@ coalesce(ecomment, comment),
@ coalesce(euser, user),
@ (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim=1),
@ (SELECT count(*) FROM plink WHERE cid=blob.rid),
@ NOT EXISTS (SELECT 1 FROM plink WHERE pid=blob.rid),
@ coalesce(bgcolor, brbgcolor),
@ event.type,
@ (SELECT group_concat(substr(tagname,5), ', ') FROM tag, tagxref
@ WHERE tagname GLOB 'sym-*' AND tag.tagid=tagxref.tagid
@ AND tagxref.rid=blob.rid AND tagxref.tagtype>0)
@ FROM event JOIN blob
@ WHERE blob.rid=event.objid
;
return zBaseSql;
}
/*
|
| ︙ | ︙ | |||
582 583 584 585 586 587 588 |
*/
const char *timeline_query_for_tty(void){
static const char zBaseSql[] =
@ SELECT
@ blob.rid,
@ uuid,
@ datetime(event.mtime,'localtime'),
| | > > > > > > > | 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 |
*/
const char *timeline_query_for_tty(void){
static const char zBaseSql[] =
@ SELECT
@ blob.rid,
@ uuid,
@ datetime(event.mtime,'localtime'),
@ coalesce(ecomment,comment)
@ || ' (user: ' || coalesce(euser,user,'?')
@ || (SELECT case when length(x)>0 then ' tags: ' || x else '' end
@ FROM (SELECT group_concat(substr(tagname,5), ', ') AS x
@ FROM tag, tagxref
@ WHERE tagname GLOB 'sym-*' AND tag.tagid=tagxref.tagid
@ AND tagxref.rid=blob.rid AND tagxref.tagtype>0))
@ || ')',
@ (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim),
@ (SELECT count(*) FROM plink WHERE cid=blob.rid)
@ FROM event, blob
@ WHERE blob.rid=event.objid
;
return zBaseSql;
}
|
| ︙ | ︙ |