Fossil SCM

Remove the option in /finfo to show all changes to a file. Show the first change only. And do not attempt to put that change on the trunk, but really show the first actual change.

drh 2015-01-26 13:52 UTC mlink-improvements
Commit 5f6ee7ce0450f4241d1aaab4f68ccaa3d100e0f3
1 file changed +7 -33
+7 -33
--- src/finfo.c
+++ src/finfo.c
@@ -284,11 +284,10 @@
284284
** b=DATE Only show changes before DATE
285285
** n=NUM Show the first NUM changes only
286286
** brbg Background color by branch name
287287
** ubg Background color by user name
288288
** ci=UUID Ancestors of a particular check-in
289
-** fco=BOOL Show only first occurrence of each version if true (default)
290289
*/
291290
void finfo_page(void){
292291
Stmt q;
293292
const char *zFilename;
294293
char zPrevDate[20];
@@ -302,11 +301,10 @@
302301
Blob sql;
303302
HQuery url;
304303
GraphContext *pGraph;
305304
int brBg = P("brbg")!=0;
306305
int uBg = P("ubg")!=0;
307
- int firstChngOnly = atoi(PD("fco","1"))!=0;
308306
int fDebug = atoi(PD("debug","0"));
309307
int fShowId = P("showid")!=0;
310308
311309
login_check_credentials();
312310
if( !g.perm.Read ){ login_needed(); return; }
@@ -314,13 +312,10 @@
314312
login_anonymous_available();
315313
url_initialize(&url, "finfo");
316314
if( brBg ) url_add_parameter(&url, "brbg", 0);
317315
if( uBg ) url_add_parameter(&url, "ubg", 0);
318316
baseCheckin = name_to_rid_www("ci");
319
- if( baseCheckin ) firstChngOnly = 1;
320
- if( !firstChngOnly ) url_add_parameter(&url, "fco", "0");
321
-
322317
zPrevDate[0] = 0;
323318
zFilename = PD("name","");
324319
fnid = db_int(0, "SELECT fnid FROM filename WHERE name=%Q", zFilename);
325320
if( fnid==0 ){
326321
@ No such file: %h(zFilename)
@@ -329,11 +324,11 @@
329324
}
330325
url_add_parameter(&url, "name", zFilename);
331326
blob_zero(&sql);
332327
blob_append_sql(&sql,
333328
"SELECT"
334
- " datetime(event.mtime%s)," /* Date of change */
329
+ " datetime(min(event.mtime)%s)," /* Date of change */
335330
" coalesce(event.ecomment, event.comment)," /* Check-in comment */
336331
" coalesce(event.euser, event.user)," /* User who made chng */
337332
" mlink.pid," /* Parent file rid */
338333
" mlink.fid," /* File rid */
339334
" (SELECT uuid FROM blob WHERE rid=mlink.pid)," /* Parent file uuid */
@@ -341,26 +336,15 @@
341336
" (SELECT uuid FROM blob WHERE rid=mlink.mid)," /* Check-in uuid */
342337
" event.bgcolor," /* Background color */
343338
" (SELECT value FROM tagxref WHERE tagid=%d AND tagtype>0"
344339
" AND tagxref.rid=mlink.mid)," /* Branchname */
345340
" mlink.mid," /* check-in ID */
346
- " mlink.pfnid", /* Previous filename */
347
- timeline_utc(), TAG_BRANCH
348
- );
349
- if( firstChngOnly ){
350
- blob_append_sql(&sql,
351
- ", min(CASE (SELECT value FROM tagxref"
352
- " WHERE tagtype>0 AND tagid=%d"
353
- " AND tagxref.rid=mlink.mid)"
354
- " WHEN 'trunk' THEN event.mtime-10000 ELSE event.mtime END)",
355
- TAG_BRANCH);
356
- }
357
- blob_append_sql(&sql,
341
+ " mlink.pfnid" /* Previous filename */
358342
" FROM mlink, event"
359343
" WHERE mlink.fnid=%d"
360344
" AND event.objid=mlink.mid",
361
- fnid
345
+ timeline_utc(), TAG_BRANCH, fnid
362346
);
363347
if( baseCheckin ){
364348
compute_direct_ancestors(baseCheckin, 10000000);
365349
blob_append_sql(&sql," AND mlink.mid IN (SELECT rid FROM ancestor)");
366350
}
@@ -370,28 +354,18 @@
370354
}
371355
if( (zB = P("b"))!=0 ){
372356
blob_append_sql(&sql, " AND event.mtime<=julianday('%q')", zB);
373357
url_add_parameter(&url, "b", zB);
374358
}
375
- if( firstChngOnly ){
376
- blob_append_sql(&sql, " GROUP BY mlink.fid");
377
- }
378
- blob_append_sql(&sql," ORDER BY event.mtime DESC /*sort*/");
359
+ blob_append_sql(&sql,
360
+ " GROUP BY mlink.fid"
361
+ " ORDER BY event.mtime DESC /*sort*/"
362
+ );
379363
if( (n = atoi(PD("n","0")))>0 ){
380364
blob_append_sql(&sql, " LIMIT %d", n);
381365
url_add_parameter(&url, "n", P("n"));
382366
}
383
- if( baseCheckin==0 ){
384
- if( firstChngOnly ){
385
- style_submenu_element("Full", "Show all changes","%s",
386
- url_render(&url, "fco", "0", 0, 0));
387
- }else{
388
- style_submenu_element("Simplified",
389
- "Show only first use of a change","%s",
390
- url_render(&url, "fco", 0, 0, 0));
391
- }
392
- }
393367
db_prepare(&q, "%s", blob_sql_text(&sql));
394368
if( P("showsql")!=0 ){
395369
@ <p>SQL: %h(blob_str(&sql))</p>
396370
}
397371
blob_reset(&sql);
398372
--- src/finfo.c
+++ src/finfo.c
@@ -284,11 +284,10 @@
284 ** b=DATE Only show changes before DATE
285 ** n=NUM Show the first NUM changes only
286 ** brbg Background color by branch name
287 ** ubg Background color by user name
288 ** ci=UUID Ancestors of a particular check-in
289 ** fco=BOOL Show only first occurrence of each version if true (default)
290 */
291 void finfo_page(void){
292 Stmt q;
293 const char *zFilename;
294 char zPrevDate[20];
@@ -302,11 +301,10 @@
302 Blob sql;
303 HQuery url;
304 GraphContext *pGraph;
305 int brBg = P("brbg")!=0;
306 int uBg = P("ubg")!=0;
307 int firstChngOnly = atoi(PD("fco","1"))!=0;
308 int fDebug = atoi(PD("debug","0"));
309 int fShowId = P("showid")!=0;
310
311 login_check_credentials();
312 if( !g.perm.Read ){ login_needed(); return; }
@@ -314,13 +312,10 @@
314 login_anonymous_available();
315 url_initialize(&url, "finfo");
316 if( brBg ) url_add_parameter(&url, "brbg", 0);
317 if( uBg ) url_add_parameter(&url, "ubg", 0);
318 baseCheckin = name_to_rid_www("ci");
319 if( baseCheckin ) firstChngOnly = 1;
320 if( !firstChngOnly ) url_add_parameter(&url, "fco", "0");
321
322 zPrevDate[0] = 0;
323 zFilename = PD("name","");
324 fnid = db_int(0, "SELECT fnid FROM filename WHERE name=%Q", zFilename);
325 if( fnid==0 ){
326 @ No such file: %h(zFilename)
@@ -329,11 +324,11 @@
329 }
330 url_add_parameter(&url, "name", zFilename);
331 blob_zero(&sql);
332 blob_append_sql(&sql,
333 "SELECT"
334 " datetime(event.mtime%s)," /* Date of change */
335 " coalesce(event.ecomment, event.comment)," /* Check-in comment */
336 " coalesce(event.euser, event.user)," /* User who made chng */
337 " mlink.pid," /* Parent file rid */
338 " mlink.fid," /* File rid */
339 " (SELECT uuid FROM blob WHERE rid=mlink.pid)," /* Parent file uuid */
@@ -341,26 +336,15 @@
341 " (SELECT uuid FROM blob WHERE rid=mlink.mid)," /* Check-in uuid */
342 " event.bgcolor," /* Background color */
343 " (SELECT value FROM tagxref WHERE tagid=%d AND tagtype>0"
344 " AND tagxref.rid=mlink.mid)," /* Branchname */
345 " mlink.mid," /* check-in ID */
346 " mlink.pfnid", /* Previous filename */
347 timeline_utc(), TAG_BRANCH
348 );
349 if( firstChngOnly ){
350 blob_append_sql(&sql,
351 ", min(CASE (SELECT value FROM tagxref"
352 " WHERE tagtype>0 AND tagid=%d"
353 " AND tagxref.rid=mlink.mid)"
354 " WHEN 'trunk' THEN event.mtime-10000 ELSE event.mtime END)",
355 TAG_BRANCH);
356 }
357 blob_append_sql(&sql,
358 " FROM mlink, event"
359 " WHERE mlink.fnid=%d"
360 " AND event.objid=mlink.mid",
361 fnid
362 );
363 if( baseCheckin ){
364 compute_direct_ancestors(baseCheckin, 10000000);
365 blob_append_sql(&sql," AND mlink.mid IN (SELECT rid FROM ancestor)");
366 }
@@ -370,28 +354,18 @@
370 }
371 if( (zB = P("b"))!=0 ){
372 blob_append_sql(&sql, " AND event.mtime<=julianday('%q')", zB);
373 url_add_parameter(&url, "b", zB);
374 }
375 if( firstChngOnly ){
376 blob_append_sql(&sql, " GROUP BY mlink.fid");
377 }
378 blob_append_sql(&sql," ORDER BY event.mtime DESC /*sort*/");
379 if( (n = atoi(PD("n","0")))>0 ){
380 blob_append_sql(&sql, " LIMIT %d", n);
381 url_add_parameter(&url, "n", P("n"));
382 }
383 if( baseCheckin==0 ){
384 if( firstChngOnly ){
385 style_submenu_element("Full", "Show all changes","%s",
386 url_render(&url, "fco", "0", 0, 0));
387 }else{
388 style_submenu_element("Simplified",
389 "Show only first use of a change","%s",
390 url_render(&url, "fco", 0, 0, 0));
391 }
392 }
393 db_prepare(&q, "%s", blob_sql_text(&sql));
394 if( P("showsql")!=0 ){
395 @ <p>SQL: %h(blob_str(&sql))</p>
396 }
397 blob_reset(&sql);
398
--- src/finfo.c
+++ src/finfo.c
@@ -284,11 +284,10 @@
284 ** b=DATE Only show changes before DATE
285 ** n=NUM Show the first NUM changes only
286 ** brbg Background color by branch name
287 ** ubg Background color by user name
288 ** ci=UUID Ancestors of a particular check-in
 
289 */
290 void finfo_page(void){
291 Stmt q;
292 const char *zFilename;
293 char zPrevDate[20];
@@ -302,11 +301,10 @@
301 Blob sql;
302 HQuery url;
303 GraphContext *pGraph;
304 int brBg = P("brbg")!=0;
305 int uBg = P("ubg")!=0;
 
306 int fDebug = atoi(PD("debug","0"));
307 int fShowId = P("showid")!=0;
308
309 login_check_credentials();
310 if( !g.perm.Read ){ login_needed(); return; }
@@ -314,13 +312,10 @@
312 login_anonymous_available();
313 url_initialize(&url, "finfo");
314 if( brBg ) url_add_parameter(&url, "brbg", 0);
315 if( uBg ) url_add_parameter(&url, "ubg", 0);
316 baseCheckin = name_to_rid_www("ci");
 
 
 
317 zPrevDate[0] = 0;
318 zFilename = PD("name","");
319 fnid = db_int(0, "SELECT fnid FROM filename WHERE name=%Q", zFilename);
320 if( fnid==0 ){
321 @ No such file: %h(zFilename)
@@ -329,11 +324,11 @@
324 }
325 url_add_parameter(&url, "name", zFilename);
326 blob_zero(&sql);
327 blob_append_sql(&sql,
328 "SELECT"
329 " datetime(min(event.mtime)%s)," /* Date of change */
330 " coalesce(event.ecomment, event.comment)," /* Check-in comment */
331 " coalesce(event.euser, event.user)," /* User who made chng */
332 " mlink.pid," /* Parent file rid */
333 " mlink.fid," /* File rid */
334 " (SELECT uuid FROM blob WHERE rid=mlink.pid)," /* Parent file uuid */
@@ -341,26 +336,15 @@
336 " (SELECT uuid FROM blob WHERE rid=mlink.mid)," /* Check-in uuid */
337 " event.bgcolor," /* Background color */
338 " (SELECT value FROM tagxref WHERE tagid=%d AND tagtype>0"
339 " AND tagxref.rid=mlink.mid)," /* Branchname */
340 " mlink.mid," /* check-in ID */
341 " mlink.pfnid" /* Previous filename */
 
 
 
 
 
 
 
 
 
 
 
342 " FROM mlink, event"
343 " WHERE mlink.fnid=%d"
344 " AND event.objid=mlink.mid",
345 timeline_utc(), TAG_BRANCH, fnid
346 );
347 if( baseCheckin ){
348 compute_direct_ancestors(baseCheckin, 10000000);
349 blob_append_sql(&sql," AND mlink.mid IN (SELECT rid FROM ancestor)");
350 }
@@ -370,28 +354,18 @@
354 }
355 if( (zB = P("b"))!=0 ){
356 blob_append_sql(&sql, " AND event.mtime<=julianday('%q')", zB);
357 url_add_parameter(&url, "b", zB);
358 }
359 blob_append_sql(&sql,
360 " GROUP BY mlink.fid"
361 " ORDER BY event.mtime DESC /*sort*/"
362 );
363 if( (n = atoi(PD("n","0")))>0 ){
364 blob_append_sql(&sql, " LIMIT %d", n);
365 url_add_parameter(&url, "n", P("n"));
366 }
 
 
 
 
 
 
 
 
 
 
367 db_prepare(&q, "%s", blob_sql_text(&sql));
368 if( P("showsql")!=0 ){
369 @ <p>SQL: %h(blob_str(&sql))</p>
370 }
371 blob_reset(&sql);
372

Keyboard Shortcuts

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