Fossil SCM

Improvements to file history display in the web interface.

drh 2013-05-25 20:41 trunk
Commit 601c15421a4a5ca53e86158fe5cbcd54ce92fc54
2 files changed +24 -8 +1
+24 -8
--- src/finfo.c
+++ src/finfo.c
@@ -284,12 +284,13 @@
284284
style_header("File History");
285285
login_anonymous_available();
286286
url_initialize(&url, "finfo");
287287
if( brBg ) url_add_parameter(&url, "brbg", 0);
288288
if( uBg ) url_add_parameter(&url, "ubg", 0);
289
- if( firstChngOnly ) url_add_parameter(&url, "fco", "0");
290289
baseCheckin = name_to_rid_www("ci");
290
+ if( baseCheckin ) firstChngOnly = 1;
291
+ if( firstChngOnly ) url_add_parameter(&url, "fco", "0");
291292
292293
zPrevDate[0] = 0;
293294
zFilename = PD("name","");
294295
url_add_parameter(&url, "name", zFilename);
295296
blob_zero(&sql);
@@ -296,11 +297,11 @@
296297
blob_appendf(&sql,
297298
"SELECT"
298299
" datetime(event.mtime,'localtime')," /* Date of change */
299300
" coalesce(event.ecomment, event.comment)," /* Check-in comment */
300301
" coalesce(event.euser, event.user)," /* User who made chng */
301
- " mlink.pid," /* Parent rid */
302
+ " mlink.pid," /* Parent file rid */
302303
" mlink.fid," /* File rid */
303304
" (SELECT uuid FROM blob WHERE rid=mlink.pid)," /* Parent file uuid */
304305
" (SELECT uuid FROM blob WHERE rid=mlink.fid)," /* Current file uuid */
305306
" (SELECT uuid FROM blob WHERE rid=mlink.mid)," /* Check-in uuid */
306307
" event.bgcolor," /* Background color */
@@ -309,11 +310,20 @@
309310
" mlink.mid," /* check-in ID */
310311
" mlink.pfnid", /* Previous filename */
311312
TAG_BRANCH
312313
);
313314
if( firstChngOnly ){
315
+#if 0
314316
blob_appendf(&sql, ", min(event.mtime)");
317
+#else
318
+ blob_appendf(&sql,
319
+ ", min(CASE (SELECT value FROM tagxref"
320
+ " WHERE tagtype>0 AND tagid=%d"
321
+ " AND tagxref.rid=mlink.mid)"
322
+ " WHEN 'trunk' THEN event.mtime-10000 ELSE event.mtime END)",
323
+ TAG_BRANCH);
324
+#endif
315325
}
316326
blob_appendf(&sql,
317327
" FROM mlink, event"
318328
" WHERE mlink.fnid IN (SELECT fnid FROM filename WHERE name=%Q)"
319329
" AND event.objid=mlink.mid",
@@ -337,18 +347,24 @@
337347
blob_appendf(&sql," ORDER BY event.mtime DESC /*sort*/");
338348
if( (n = atoi(PD("n","0")))>0 ){
339349
blob_appendf(&sql, " LIMIT %d", n);
340350
url_add_parameter(&url, "n", P("n"));
341351
}
342
- if( firstChngOnly ){
343
- style_submenu_element("Full", "Show all changes","%s",
344
- url_render(&url, "fco", "0", 0, 0));
345
- }else{
346
- style_submenu_element("Simplified", "Show only first use of a change","%s",
347
- url_render(&url, "fco", "1", 0, 0));
352
+ if( baseCheckin==0 ){
353
+ if( firstChngOnly ){
354
+ style_submenu_element("Full", "Show all changes","%s",
355
+ url_render(&url, "fco", "0", 0, 0));
356
+ }else{
357
+ style_submenu_element("Simplified",
358
+ "Show only first use of a change","%s",
359
+ url_render(&url, "fco", "1", 0, 0));
360
+ }
348361
}
349362
db_prepare(&q, blob_str(&sql));
363
+ if( P("showsql")!=0 ){
364
+ @ <p>SQL: %h(blob_str(&sql))</p>
365
+ }
350366
blob_reset(&sql);
351367
blob_zero(&title);
352368
if( baseCheckin ){
353369
char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", baseCheckin);
354370
char *zLink = href("%R/info/%S", zUuid);
355371
--- src/finfo.c
+++ src/finfo.c
@@ -284,12 +284,13 @@
284 style_header("File History");
285 login_anonymous_available();
286 url_initialize(&url, "finfo");
287 if( brBg ) url_add_parameter(&url, "brbg", 0);
288 if( uBg ) url_add_parameter(&url, "ubg", 0);
289 if( firstChngOnly ) url_add_parameter(&url, "fco", "0");
290 baseCheckin = name_to_rid_www("ci");
 
 
291
292 zPrevDate[0] = 0;
293 zFilename = PD("name","");
294 url_add_parameter(&url, "name", zFilename);
295 blob_zero(&sql);
@@ -296,11 +297,11 @@
296 blob_appendf(&sql,
297 "SELECT"
298 " datetime(event.mtime,'localtime')," /* Date of change */
299 " coalesce(event.ecomment, event.comment)," /* Check-in comment */
300 " coalesce(event.euser, event.user)," /* User who made chng */
301 " mlink.pid," /* Parent rid */
302 " mlink.fid," /* File rid */
303 " (SELECT uuid FROM blob WHERE rid=mlink.pid)," /* Parent file uuid */
304 " (SELECT uuid FROM blob WHERE rid=mlink.fid)," /* Current file uuid */
305 " (SELECT uuid FROM blob WHERE rid=mlink.mid)," /* Check-in uuid */
306 " event.bgcolor," /* Background color */
@@ -309,11 +310,20 @@
309 " mlink.mid," /* check-in ID */
310 " mlink.pfnid", /* Previous filename */
311 TAG_BRANCH
312 );
313 if( firstChngOnly ){
 
314 blob_appendf(&sql, ", min(event.mtime)");
 
 
 
 
 
 
 
 
315 }
316 blob_appendf(&sql,
317 " FROM mlink, event"
318 " WHERE mlink.fnid IN (SELECT fnid FROM filename WHERE name=%Q)"
319 " AND event.objid=mlink.mid",
@@ -337,18 +347,24 @@
337 blob_appendf(&sql," ORDER BY event.mtime DESC /*sort*/");
338 if( (n = atoi(PD("n","0")))>0 ){
339 blob_appendf(&sql, " LIMIT %d", n);
340 url_add_parameter(&url, "n", P("n"));
341 }
342 if( firstChngOnly ){
343 style_submenu_element("Full", "Show all changes","%s",
344 url_render(&url, "fco", "0", 0, 0));
345 }else{
346 style_submenu_element("Simplified", "Show only first use of a change","%s",
347 url_render(&url, "fco", "1", 0, 0));
 
 
 
348 }
349 db_prepare(&q, blob_str(&sql));
 
 
 
350 blob_reset(&sql);
351 blob_zero(&title);
352 if( baseCheckin ){
353 char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", baseCheckin);
354 char *zLink = href("%R/info/%S", zUuid);
355
--- src/finfo.c
+++ src/finfo.c
@@ -284,12 +284,13 @@
284 style_header("File History");
285 login_anonymous_available();
286 url_initialize(&url, "finfo");
287 if( brBg ) url_add_parameter(&url, "brbg", 0);
288 if( uBg ) url_add_parameter(&url, "ubg", 0);
 
289 baseCheckin = name_to_rid_www("ci");
290 if( baseCheckin ) firstChngOnly = 1;
291 if( firstChngOnly ) url_add_parameter(&url, "fco", "0");
292
293 zPrevDate[0] = 0;
294 zFilename = PD("name","");
295 url_add_parameter(&url, "name", zFilename);
296 blob_zero(&sql);
@@ -296,11 +297,11 @@
297 blob_appendf(&sql,
298 "SELECT"
299 " datetime(event.mtime,'localtime')," /* Date of change */
300 " coalesce(event.ecomment, event.comment)," /* Check-in comment */
301 " coalesce(event.euser, event.user)," /* User who made chng */
302 " mlink.pid," /* Parent file rid */
303 " mlink.fid," /* File rid */
304 " (SELECT uuid FROM blob WHERE rid=mlink.pid)," /* Parent file uuid */
305 " (SELECT uuid FROM blob WHERE rid=mlink.fid)," /* Current file uuid */
306 " (SELECT uuid FROM blob WHERE rid=mlink.mid)," /* Check-in uuid */
307 " event.bgcolor," /* Background color */
@@ -309,11 +310,20 @@
310 " mlink.mid," /* check-in ID */
311 " mlink.pfnid", /* Previous filename */
312 TAG_BRANCH
313 );
314 if( firstChngOnly ){
315 #if 0
316 blob_appendf(&sql, ", min(event.mtime)");
317 #else
318 blob_appendf(&sql,
319 ", min(CASE (SELECT value FROM tagxref"
320 " WHERE tagtype>0 AND tagid=%d"
321 " AND tagxref.rid=mlink.mid)"
322 " WHEN 'trunk' THEN event.mtime-10000 ELSE event.mtime END)",
323 TAG_BRANCH);
324 #endif
325 }
326 blob_appendf(&sql,
327 " FROM mlink, event"
328 " WHERE mlink.fnid IN (SELECT fnid FROM filename WHERE name=%Q)"
329 " AND event.objid=mlink.mid",
@@ -337,18 +347,24 @@
347 blob_appendf(&sql," ORDER BY event.mtime DESC /*sort*/");
348 if( (n = atoi(PD("n","0")))>0 ){
349 blob_appendf(&sql, " LIMIT %d", n);
350 url_add_parameter(&url, "n", P("n"));
351 }
352 if( baseCheckin==0 ){
353 if( firstChngOnly ){
354 style_submenu_element("Full", "Show all changes","%s",
355 url_render(&url, "fco", "0", 0, 0));
356 }else{
357 style_submenu_element("Simplified",
358 "Show only first use of a change","%s",
359 url_render(&url, "fco", "1", 0, 0));
360 }
361 }
362 db_prepare(&q, blob_str(&sql));
363 if( P("showsql")!=0 ){
364 @ <p>SQL: %h(blob_str(&sql))</p>
365 }
366 blob_reset(&sql);
367 blob_zero(&title);
368 if( baseCheckin ){
369 char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", baseCheckin);
370 char *zLink = href("%R/info/%S", zUuid);
371
+1
--- src/info.c
+++ src/info.c
@@ -1090,10 +1090,11 @@
10901090
@ - %!w(zCom) (user:
10911091
hyperlink_to_user(zUser,zDate,")");
10921092
if( g.perm.Hyperlink ){
10931093
@ %z(href("%R/annotate?checkin=%S&filename=%T",zVers,zName))
10941094
@ [annotate]</a>
1095
+ @ %z(href("%R/finfo?name=%T&ci=%S",zName,zVers))[ancestry]</a>
10951096
}
10961097
cnt++;
10971098
if( pDownloadName && blob_size(pDownloadName)==0 ){
10981099
blob_append(pDownloadName, zName, -1);
10991100
}
11001101
--- src/info.c
+++ src/info.c
@@ -1090,10 +1090,11 @@
1090 @ - %!w(zCom) (user:
1091 hyperlink_to_user(zUser,zDate,")");
1092 if( g.perm.Hyperlink ){
1093 @ %z(href("%R/annotate?checkin=%S&filename=%T",zVers,zName))
1094 @ [annotate]</a>
 
1095 }
1096 cnt++;
1097 if( pDownloadName && blob_size(pDownloadName)==0 ){
1098 blob_append(pDownloadName, zName, -1);
1099 }
1100
--- src/info.c
+++ src/info.c
@@ -1090,10 +1090,11 @@
1090 @ - %!w(zCom) (user:
1091 hyperlink_to_user(zUser,zDate,")");
1092 if( g.perm.Hyperlink ){
1093 @ %z(href("%R/annotate?checkin=%S&filename=%T",zVers,zName))
1094 @ [annotate]</a>
1095 @ %z(href("%R/finfo?name=%T&ci=%S",zName,zVers))[ancestry]</a>
1096 }
1097 cnt++;
1098 if( pDownloadName && blob_size(pDownloadName)==0 ){
1099 blob_append(pDownloadName, zName, -1);
1100 }
1101

Keyboard Shortcuts

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