Fossil SCM
Prevent duplicate entries on the file list of a timeline.
Commit
22e0427b1048534ea56390a24e2a7d136fdef298
Parent
3cff1b8f0a6467b…
1 file changed
+4
-1
+4
-1
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -491,10 +491,11 @@ | ||
| 491 | 491 | /* Generate the file-change list if requested */ |
| 492 | 492 | if( (tmFlags & (TIMELINE_FCHANGES|TIMELINE_FRENAMES))!=0 |
| 493 | 493 | && zType[0]=='c' && g.perm.Hyperlink |
| 494 | 494 | ){ |
| 495 | 495 | int inUl = 0; |
| 496 | + int prevFid = -1; | |
| 496 | 497 | if( !fchngQueryInit ){ |
| 497 | 498 | db_prepare(&fchngQuery, |
| 498 | 499 | "SELECT pid," |
| 499 | 500 | " fid," |
| 500 | 501 | " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name," |
| @@ -503,11 +504,11 @@ | ||
| 503 | 504 | " (SELECT name FROM filename WHERE fnid=mlink.pfnid) AS oldnm" |
| 504 | 505 | " FROM mlink" |
| 505 | 506 | " WHERE mid=:mid AND (pid!=fid OR pfnid>0)" |
| 506 | 507 | " AND (fid>0 OR" |
| 507 | 508 | " fnid NOT IN (SELECT pfnid FROM mlink WHERE mid=:mid))" |
| 508 | - " ORDER BY 3 /*sort*/" | |
| 509 | + " ORDER BY 3, mlink.isaux /*sort*/" | |
| 509 | 510 | ); |
| 510 | 511 | fchngQueryInit = 1; |
| 511 | 512 | } |
| 512 | 513 | db_bind_int(&fchngQuery, ":mid", rid); |
| 513 | 514 | while( db_step(&fchngQuery)==SQLITE_ROW ){ |
| @@ -520,10 +521,12 @@ | ||
| 520 | 521 | const char *zOld = db_column_text(&fchngQuery, 4); |
| 521 | 522 | const char *zNew = db_column_text(&fchngQuery, 3); |
| 522 | 523 | const char *zUnpub = ""; |
| 523 | 524 | char *zA; |
| 524 | 525 | char zId[20]; |
| 526 | + if( prevFid==fid ) continue; | |
| 527 | + prevFid = fid; | |
| 525 | 528 | if( !inUl ){ |
| 526 | 529 | @ <ul class="filelist"> |
| 527 | 530 | inUl = 1; |
| 528 | 531 | } |
| 529 | 532 | if( tmFlags & TIMELINE_SHOWRID ){ |
| 530 | 533 |
| --- 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 |