Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Enhancements to the timeline labeling with the uf= option. New hyperlinks from the finfo page to timeline with uf=. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
a9372c05f5937dd10cdeb41b14062f9c |
| User & Date: | drh 2012-11-15 15:57:45.225 |
Context
|
2012-11-15
| ||
| 20:25 | Enhance the finfo page to show renames and/or where the file was added. check-in: dac6424e66 user: drh tags: trunk | |
| 15:57 | Enhancements to the timeline labeling with the uf= option. New hyperlinks from the finfo page to timeline with uf=. check-in: a9372c05f5 user: drh tags: trunk | |
| 15:14 | Add the uf= query parameter to timeline. The timeline shows only those checkins that contain the file identified. check-in: eb3cc76d50 user: drh tags: trunk | |
Changes
Changes to src/finfo.c.
| ︙ | ︙ | |||
369 370 371 372 373 374 375 376 377 378 379 380 381 382 |
if( g.perm.Hyperlink && zUuid ){
const char *z = zFilename;
if( fpid ){
@ %z(href("%R/fdiff?v1=%S&v2=%S",zPUuid,zUuid))[diff]</a>
}
@ %z(href("%R/annotate?checkin=%S&filename=%h",zCkin,z))
@ [annotate]</a>
}
if( fDebug & FINFO_DEBUG_MLINK ){
@ fid=%d(frid), pid=%d(fpid), mid=%d(fmid)
}
@ </td></tr>
}
db_finalize(&q);
| > | 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 |
if( g.perm.Hyperlink && zUuid ){
const char *z = zFilename;
if( fpid ){
@ %z(href("%R/fdiff?v1=%S&v2=%S",zPUuid,zUuid))[diff]</a>
}
@ %z(href("%R/annotate?checkin=%S&filename=%h",zCkin,z))
@ [annotate]</a>
@ %z(href("%R/timeline?n=200&uf=%S",zUuid))[checkins using]</a>
}
if( fDebug & FINFO_DEBUG_MLINK ){
@ fid=%d(frid), pid=%d(fpid), mid=%d(fmid)
}
@ </td></tr>
}
db_finalize(&q);
|
| ︙ | ︙ |
Changes to src/timeline.c.
| ︙ | ︙ | |||
876 877 878 879 880 881 882 883 884 885 886 887 888 889 |
"INSERT INTO timeline(rid,sortby,etype)"
"VALUES(-2,%.17g,'div')",
rDate+ONE_SECOND
);
fossil_free(zToDel);
}
/*
** WEBPAGE: timeline
**
** Query parameters:
**
** a=TIMEORTAG after this event
| > > > > > > > > > > > > > > > > > > > > > > > > | 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 |
"INSERT INTO timeline(rid,sortby,etype)"
"VALUES(-2,%.17g,'div')",
rDate+ONE_SECOND
);
fossil_free(zToDel);
}
/*
** Return all possible names for file zUuid.
*/
char *names_of_file(const char *zUuid){
Stmt q;
Blob out;
const char *zSep = "";
db_prepare(&q,
"SELECT DISTINCT filename.name FROM mlink, filename"
" WHERE mlink.fid=(SELECT rid FROM blob WHERE uuid='%s')"
" AND filename.fnid=mlink.fnid",
zUuid
);
blob_zero(&out);
while( db_step(&q)==SQLITE_ROW ){
const char *zFN = db_column_text(&q, 0);
blob_appendf(&out, "%s%z%h</a>", zSep,
href("%R/finfo?name=%t", zFN), zFN);
zSep = " or ";
}
db_finalize(&q);
return blob_str(&out);
}
/*
** WEBPAGE: timeline
**
** Query parameters:
**
** a=TIMEORTAG after this event
|
| ︙ | ︙ | |||
1235 1236 1237 1238 1239 1240 1241 |
n = db_int(0, "SELECT count(*) FROM timeline WHERE etype!='div' /*scan*/");
if( zAfter==0 && zBefore==0 && zCirca==0 ){
blob_appendf(&desc, "%d most recent %ss", n, zEType);
}else{
blob_appendf(&desc, "%d %ss", n, zEType);
}
if( zUses ){
| > | | 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 |
n = db_int(0, "SELECT count(*) FROM timeline WHERE etype!='div' /*scan*/");
if( zAfter==0 && zBefore==0 && zCirca==0 ){
blob_appendf(&desc, "%d most recent %ss", n, zEType);
}else{
blob_appendf(&desc, "%d %ss", n, zEType);
}
if( zUses ){
char *zFilenames = names_of_file(zUses);
blob_appendf(&desc, " using file %s version %z%S</a>", zFilenames,
href("%R/artifact/%S",zUses), zUses);
tmFlags |= TIMELINE_DISJOINT;
}
if( zUser ){
blob_appendf(&desc, " by user %h", zUser);
tmFlags |= TIMELINE_DISJOINT;
}
|
| ︙ | ︙ |