Fossil SCM

Add a "diff" hyperlink after each file in the "Show Files" view of the timeline.

drh 2011-04-14 02:08 trunk
Commit 6d9bba56dcdcad806a2e8672fe3835d04fad76c2
1 file changed +12 -4
+12 -4
--- src/timeline.c
+++ src/timeline.c
@@ -344,17 +344,19 @@
344344
if( xExtra ){
345345
xExtra(rid);
346346
}
347347
348348
/* Generate the file-change list if requested */
349
- if( (tmFlags & TIMELINE_FCHANGES)!=0 && zType[0]=='c' ){
349
+ if( (tmFlags & TIMELINE_FCHANGES)!=0 && zType[0]=='c' && g.okHistory ){
350350
int inUl = 0;
351351
if( !fchngQueryInit ){
352352
db_prepare(&fchngQuery,
353353
"SELECT (pid==0) AS isnew,"
354354
" (fid==0) AS isdel,"
355
- " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name"
355
+ " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name,"
356
+ " (SELECT uuid FROM blob WHERE rid=fid),"
357
+ " (SELECT uuid FROM blob WHERE rid=pid)"
356358
" FROM mlink"
357359
" WHERE mid=:mid AND pid!=fid"
358360
" ORDER BY 3"
359361
);
360362
fchngQueryInit = 1;
@@ -362,20 +364,26 @@
362364
db_bind_int(&fchngQuery, ":mid", rid);
363365
while( db_step(&fchngQuery)==SQLITE_ROW ){
364366
const char *zFilename = db_column_text(&fchngQuery, 2);
365367
int isNew = db_column_int(&fchngQuery, 0);
366368
int isDel = db_column_int(&fchngQuery, 1);
369
+ const char *zOld = db_column_text(&fchngQuery, 4);
370
+ const char *zNew = db_column_text(&fchngQuery, 3);
367371
if( !inUl ){
368372
@ <ul class="filelist">
369373
inUl = 1;
370374
}
371375
if( isNew ){
372
- @ <li> %h(zFilename) (new file)</li>
376
+ @ <li> %h(zFilename) (new file) &nbsp;
377
+ @ <a href="%s(g.zTop)/artifact/%S(zNew)" target="diffwindow">[view]
378
+ @ </a></li>
373379
}else if( isDel ){
374380
@ <li> %h(zFilename) (deleted)</li>
375381
}else{
376
- @ <li> %h(zFilename) </li>
382
+ @ <li> %h(zFilename) &nbsp;
383
+ @ <a href="%s(g.zTop)/fdiff?v1=%S(zOld)&v2=%S(zNew)"
384
+ @ target="diffwindow">[diff]</a></li>
377385
}
378386
}
379387
db_reset(&fchngQuery);
380388
if( inUl ){
381389
@ </ul>
382390
--- src/timeline.c
+++ src/timeline.c
@@ -344,17 +344,19 @@
344 if( xExtra ){
345 xExtra(rid);
346 }
347
348 /* Generate the file-change list if requested */
349 if( (tmFlags & TIMELINE_FCHANGES)!=0 && zType[0]=='c' ){
350 int inUl = 0;
351 if( !fchngQueryInit ){
352 db_prepare(&fchngQuery,
353 "SELECT (pid==0) AS isnew,"
354 " (fid==0) AS isdel,"
355 " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name"
 
 
356 " FROM mlink"
357 " WHERE mid=:mid AND pid!=fid"
358 " ORDER BY 3"
359 );
360 fchngQueryInit = 1;
@@ -362,20 +364,26 @@
362 db_bind_int(&fchngQuery, ":mid", rid);
363 while( db_step(&fchngQuery)==SQLITE_ROW ){
364 const char *zFilename = db_column_text(&fchngQuery, 2);
365 int isNew = db_column_int(&fchngQuery, 0);
366 int isDel = db_column_int(&fchngQuery, 1);
 
 
367 if( !inUl ){
368 @ <ul class="filelist">
369 inUl = 1;
370 }
371 if( isNew ){
372 @ <li> %h(zFilename) (new file)</li>
 
 
373 }else if( isDel ){
374 @ <li> %h(zFilename) (deleted)</li>
375 }else{
376 @ <li> %h(zFilename) </li>
 
 
377 }
378 }
379 db_reset(&fchngQuery);
380 if( inUl ){
381 @ </ul>
382
--- src/timeline.c
+++ src/timeline.c
@@ -344,17 +344,19 @@
344 if( xExtra ){
345 xExtra(rid);
346 }
347
348 /* Generate the file-change list if requested */
349 if( (tmFlags & TIMELINE_FCHANGES)!=0 && zType[0]=='c' && g.okHistory ){
350 int inUl = 0;
351 if( !fchngQueryInit ){
352 db_prepare(&fchngQuery,
353 "SELECT (pid==0) AS isnew,"
354 " (fid==0) AS isdel,"
355 " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name,"
356 " (SELECT uuid FROM blob WHERE rid=fid),"
357 " (SELECT uuid FROM blob WHERE rid=pid)"
358 " FROM mlink"
359 " WHERE mid=:mid AND pid!=fid"
360 " ORDER BY 3"
361 );
362 fchngQueryInit = 1;
@@ -362,20 +364,26 @@
364 db_bind_int(&fchngQuery, ":mid", rid);
365 while( db_step(&fchngQuery)==SQLITE_ROW ){
366 const char *zFilename = db_column_text(&fchngQuery, 2);
367 int isNew = db_column_int(&fchngQuery, 0);
368 int isDel = db_column_int(&fchngQuery, 1);
369 const char *zOld = db_column_text(&fchngQuery, 4);
370 const char *zNew = db_column_text(&fchngQuery, 3);
371 if( !inUl ){
372 @ <ul class="filelist">
373 inUl = 1;
374 }
375 if( isNew ){
376 @ <li> %h(zFilename) (new file) &nbsp;
377 @ <a href="%s(g.zTop)/artifact/%S(zNew)" target="diffwindow">[view]
378 @ </a></li>
379 }else if( isDel ){
380 @ <li> %h(zFilename) (deleted)</li>
381 }else{
382 @ <li> %h(zFilename) &nbsp;
383 @ <a href="%s(g.zTop)/fdiff?v1=%S(zOld)&v2=%S(zNew)"
384 @ target="diffwindow">[diff]</a></li>
385 }
386 }
387 db_reset(&fchngQuery);
388 if( inUl ){
389 @ </ul>
390

Keyboard Shortcuts

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