Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Add the debug= query parameter to the finfo file timeline page. Setting the 1 bit on debug causes the fid, pid, and mid of each file change to be displayed in the timeline. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
badd78e167add873b03907cef2100eb0 |
| User & Date: | drh 2012-11-15 12:38:06.755 |
Context
|
2012-11-15
| ||
| 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 | |
| 12:38 | Add the debug= query parameter to the finfo file timeline page. Setting the 1 bit on debug causes the fid, pid, and mid of each file change to be displayed in the timeline. check-in: badd78e167 user: drh tags: trunk | |
|
2012-11-14
| ||
| 18:07 | Modify the custom MinGW makefile to support symbols. check-in: 0e812a8edd user: mistachkin tags: trunk | |
Changes
Changes to src/finfo.c.
| ︙ | ︙ | |||
202 203 204 205 206 207 208 209 210 211 212 213 214 215 |
}
}
db_finalize(&q);
blob_reset(&fname);
}
}
/*
** WEBPAGE: finfo
** URL: /finfo?name=FILENAME
**
** Show the change history for a single file.
**
| > > | 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 |
}
}
db_finalize(&q);
blob_reset(&fname);
}
}
/* Values for the debug= query parameter to finfo */
#define FINFO_DEBUG_MLINK 0x01
/*
** WEBPAGE: finfo
** URL: /finfo?name=FILENAME
**
** Show the change history for a single file.
**
|
| ︙ | ︙ | |||
232 233 234 235 236 237 238 239 240 241 242 243 244 245 |
Blob title;
Blob sql;
HQuery url;
GraphContext *pGraph;
int brBg = P("brbg")!=0;
int uBg = P("ubg")!=0;
int firstChngOnly = atoi(PD("fco","1"))!=0;
login_check_credentials();
if( !g.perm.Read ){ login_needed(); return; }
style_header("File History");
login_anonymous_available();
url_initialize(&url, "finfo");
if( brBg ) url_add_parameter(&url, "brbg", 0);
| > | 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 |
Blob title;
Blob sql;
HQuery url;
GraphContext *pGraph;
int brBg = P("brbg")!=0;
int uBg = P("ubg")!=0;
int firstChngOnly = atoi(PD("fco","1"))!=0;
int fDebug = atoi(PD("debug","0"));
login_check_credentials();
if( !g.perm.Read ){ login_needed(); return; }
style_header("File History");
login_anonymous_available();
url_initialize(&url, "finfo");
if( brBg ) url_add_parameter(&url, "brbg", 0);
|
| ︙ | ︙ | |||
261 262 263 264 265 266 267 268 269 270 271 272 273 274 |
" (SELECT uuid FROM blob WHERE rid=mlink.fid)," /* Current file uuid */
" (SELECT uuid FROM blob WHERE rid=mlink.mid)," /* Check-in uuid */
" event.bgcolor," /* Background color */
" (SELECT value FROM tagxref WHERE tagid=%d AND tagtype>0"
" AND tagxref.rid=mlink.mid)", /* Tags */
TAG_BRANCH
);
if( firstChngOnly ){
blob_appendf(&sql, ", min(event.mtime)");
}
blob_appendf(&sql,
" FROM mlink, event"
" WHERE mlink.fnid IN (SELECT fnid FROM filename WHERE name=%Q %s)"
" AND event.objid=mlink.mid",
| > > > | 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 |
" (SELECT uuid FROM blob WHERE rid=mlink.fid)," /* Current file uuid */
" (SELECT uuid FROM blob WHERE rid=mlink.mid)," /* Check-in uuid */
" event.bgcolor," /* Background color */
" (SELECT value FROM tagxref WHERE tagid=%d AND tagtype>0"
" AND tagxref.rid=mlink.mid)", /* Tags */
TAG_BRANCH
);
if( fDebug & FINFO_DEBUG_MLINK ){
blob_appendf(&sql, ", mlink.mid");
}
if( firstChngOnly ){
blob_appendf(&sql, ", min(event.mtime)");
}
blob_appendf(&sql,
" FROM mlink, event"
" WHERE mlink.fnid IN (SELECT fnid FROM filename WHERE name=%Q %s)"
" AND event.objid=mlink.mid",
|
| ︙ | ︙ | |||
314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 |
int fpid = db_column_int(&q, 3);
int frid = db_column_int(&q, 4);
const char *zPUuid = db_column_text(&q, 5);
const char *zUuid = db_column_text(&q, 6);
const char *zCkin = db_column_text(&q,7);
const char *zBgClr = db_column_text(&q, 8);
const char *zBr = db_column_text(&q, 9);
int gidx;
char zTime[10];
char zShort[20];
char zShortCkin[20];
if( zBr==0 ) zBr = "trunk";
if( uBg ){
zBgClr = hash_color(zUser);
}else if( brBg || zBgClr==0 || zBgClr[0]==0 ){
zBgClr = strcmp(zBr,"trunk")==0 ? "" : hash_color(zBr);
}
gidx = graph_add_row(pGraph, frid, fpid>0 ? 1 : 0, &fpid, zBr, zBgClr, 0);
| > > > > | 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 |
int fpid = db_column_int(&q, 3);
int frid = db_column_int(&q, 4);
const char *zPUuid = db_column_text(&q, 5);
const char *zUuid = db_column_text(&q, 6);
const char *zCkin = db_column_text(&q,7);
const char *zBgClr = db_column_text(&q, 8);
const char *zBr = db_column_text(&q, 9);
int fmid = 0;
int gidx;
char zTime[10];
char zShort[20];
char zShortCkin[20];
if( fDebug & FINFO_DEBUG_MLINK ){
fmid = db_column_int(&q,10);
}
if( zBr==0 ) zBr = "trunk";
if( uBg ){
zBgClr = hash_color(zUser);
}else if( brBg || zBgClr==0 || zBgClr[0]==0 ){
zBgClr = strcmp(zBr,"trunk")==0 ? "" : hash_color(zBr);
}
gidx = graph_add_row(pGraph, frid, fpid>0 ? 1 : 0, &fpid, zBr, zBgClr, 0);
|
| ︙ | ︙ | |||
360 361 362 363 364 365 366 367 368 369 370 371 372 373 |
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>
}
@ </td></tr>
}
db_finalize(&q);
if( pGraph ){
graph_finish(pGraph, 0);
if( pGraph->nErr ){
graph_free(pGraph);
| > > > | 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 |
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);
if( pGraph ){
graph_finish(pGraph, 0);
if( pGraph->nErr ){
graph_free(pGraph);
|
| ︙ | ︙ |