Fossil SCM

Prevent duplicate entries on the file list of a timeline.

drh 2015-10-19 12:02 trunk
Commit 22e0427b1048534ea56390a24e2a7d136fdef298
1 file changed +4 -1
+4 -1
--- src/timeline.c
+++ src/timeline.c
@@ -491,10 +491,11 @@
491491
/* Generate the file-change list if requested */
492492
if( (tmFlags & (TIMELINE_FCHANGES|TIMELINE_FRENAMES))!=0
493493
&& zType[0]=='c' && g.perm.Hyperlink
494494
){
495495
int inUl = 0;
496
+ int prevFid = -1;
496497
if( !fchngQueryInit ){
497498
db_prepare(&fchngQuery,
498499
"SELECT pid,"
499500
" fid,"
500501
" (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name,"
@@ -503,11 +504,11 @@
503504
" (SELECT name FROM filename WHERE fnid=mlink.pfnid) AS oldnm"
504505
" FROM mlink"
505506
" WHERE mid=:mid AND (pid!=fid OR pfnid>0)"
506507
" AND (fid>0 OR"
507508
" fnid NOT IN (SELECT pfnid FROM mlink WHERE mid=:mid))"
508
- " ORDER BY 3 /*sort*/"
509
+ " ORDER BY 3, mlink.isaux /*sort*/"
509510
);
510511
fchngQueryInit = 1;
511512
}
512513
db_bind_int(&fchngQuery, ":mid", rid);
513514
while( db_step(&fchngQuery)==SQLITE_ROW ){
@@ -520,10 +521,12 @@
520521
const char *zOld = db_column_text(&fchngQuery, 4);
521522
const char *zNew = db_column_text(&fchngQuery, 3);
522523
const char *zUnpub = "";
523524
char *zA;
524525
char zId[20];
526
+ if( prevFid==fid ) continue;
527
+ prevFid = fid;
525528
if( !inUl ){
526529
@ <ul class="filelist">
527530
inUl = 1;
528531
}
529532
if( tmFlags & TIMELINE_SHOWRID ){
530533
--- src/timeline.c
+++ src/timeline.c
@@ -491,10 +491,11 @@
491 /* Generate the file-change list if requested */
492 if( (tmFlags & (TIMELINE_FCHANGES|TIMELINE_FRENAMES))!=0
493 && zType[0]=='c' && g.perm.Hyperlink
494 ){
495 int inUl = 0;
 
496 if( !fchngQueryInit ){
497 db_prepare(&fchngQuery,
498 "SELECT pid,"
499 " fid,"
500 " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name,"
@@ -503,11 +504,11 @@
503 " (SELECT name FROM filename WHERE fnid=mlink.pfnid) AS oldnm"
504 " FROM mlink"
505 " WHERE mid=:mid AND (pid!=fid OR pfnid>0)"
506 " AND (fid>0 OR"
507 " fnid NOT IN (SELECT pfnid FROM mlink WHERE mid=:mid))"
508 " ORDER BY 3 /*sort*/"
509 );
510 fchngQueryInit = 1;
511 }
512 db_bind_int(&fchngQuery, ":mid", rid);
513 while( db_step(&fchngQuery)==SQLITE_ROW ){
@@ -520,10 +521,12 @@
520 const char *zOld = db_column_text(&fchngQuery, 4);
521 const char *zNew = db_column_text(&fchngQuery, 3);
522 const char *zUnpub = "";
523 char *zA;
524 char zId[20];
 
 
525 if( !inUl ){
526 @ <ul class="filelist">
527 inUl = 1;
528 }
529 if( tmFlags & TIMELINE_SHOWRID ){
530
--- src/timeline.c
+++ src/timeline.c
@@ -491,10 +491,11 @@
491 /* Generate the file-change list if requested */
492 if( (tmFlags & (TIMELINE_FCHANGES|TIMELINE_FRENAMES))!=0
493 && zType[0]=='c' && g.perm.Hyperlink
494 ){
495 int inUl = 0;
496 int prevFid = -1;
497 if( !fchngQueryInit ){
498 db_prepare(&fchngQuery,
499 "SELECT pid,"
500 " fid,"
501 " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name,"
@@ -503,11 +504,11 @@
504 " (SELECT name FROM filename WHERE fnid=mlink.pfnid) AS oldnm"
505 " FROM mlink"
506 " WHERE mid=:mid AND (pid!=fid OR pfnid>0)"
507 " AND (fid>0 OR"
508 " fnid NOT IN (SELECT pfnid FROM mlink WHERE mid=:mid))"
509 " ORDER BY 3, mlink.isaux /*sort*/"
510 );
511 fchngQueryInit = 1;
512 }
513 db_bind_int(&fchngQuery, ":mid", rid);
514 while( db_step(&fchngQuery)==SQLITE_ROW ){
@@ -520,10 +521,12 @@
521 const char *zOld = db_column_text(&fchngQuery, 4);
522 const char *zNew = db_column_text(&fchngQuery, 3);
523 const char *zUnpub = "";
524 char *zA;
525 char zId[20];
526 if( prevFid==fid ) continue;
527 prevFid = fid;
528 if( !inUl ){
529 @ <ul class="filelist">
530 inUl = 1;
531 }
532 if( tmFlags & TIMELINE_SHOWRID ){
533

Keyboard Shortcuts

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