Fossil SCM
Omit MLINK entries when a file is added by merge.
Commit
bd08b03a72410c4888b1a994ef17ec09d051d26a
Parent
f603a914320243f…
2 files changed
+2
-2
+13
+2
-2
| --- src/finfo.c | ||
| +++ src/finfo.c | ||
| @@ -333,11 +333,11 @@ | ||
| 333 | 333 | " (SELECT uuid FROM blob WHERE rid=mlink.pid)," /* Parent file uuid */ |
| 334 | 334 | " (SELECT uuid FROM blob WHERE rid=mlink.fid)," /* Current file uuid */ |
| 335 | 335 | " (SELECT uuid FROM blob WHERE rid=mlink.mid)," /* Check-in uuid */ |
| 336 | 336 | " event.bgcolor," /* Background color */ |
| 337 | 337 | " (SELECT value FROM tagxref WHERE tagid=%d AND tagtype>0" |
| 338 | - " AND tagxref.rid=mlink.mid)," /* Tags */ | |
| 338 | + " AND tagxref.rid=mlink.mid)," /* Branchname */ | |
| 339 | 339 | " mlink.mid," /* check-in ID */ |
| 340 | 340 | " mlink.pfnid", /* Previous filename */ |
| 341 | 341 | timeline_utc(), TAG_BRANCH |
| 342 | 342 | ); |
| 343 | 343 | if( firstChngOnly ){ |
| @@ -501,11 +501,11 @@ | ||
| 501 | 501 | if( fShowId ){ |
| 502 | 502 | @ (%d(fmid)) |
| 503 | 503 | } |
| 504 | 504 | @ %W(zCom) (user: |
| 505 | 505 | hyperlink_to_user(zUser, zDate, ""); |
| 506 | - @ branch: %h(zBr)) | |
| 506 | + @ branch: %z(href("%R/timeline?t=%T&n=200",zBr))%h(zBr)</a> | |
| 507 | 507 | if( g.perm.Hyperlink && zUuid ){ |
| 508 | 508 | const char *z = zFilename; |
| 509 | 509 | @ %z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin)) |
| 510 | 510 | @ [annotate]</a> |
| 511 | 511 | @ %z(href("%R/blame?filename=%h&checkin=%s",z,zCkin)) |
| 512 | 512 |
| --- src/finfo.c | |
| +++ src/finfo.c | |
| @@ -333,11 +333,11 @@ | |
| 333 | " (SELECT uuid FROM blob WHERE rid=mlink.pid)," /* Parent file uuid */ |
| 334 | " (SELECT uuid FROM blob WHERE rid=mlink.fid)," /* Current file uuid */ |
| 335 | " (SELECT uuid FROM blob WHERE rid=mlink.mid)," /* Check-in uuid */ |
| 336 | " event.bgcolor," /* Background color */ |
| 337 | " (SELECT value FROM tagxref WHERE tagid=%d AND tagtype>0" |
| 338 | " AND tagxref.rid=mlink.mid)," /* Tags */ |
| 339 | " mlink.mid," /* check-in ID */ |
| 340 | " mlink.pfnid", /* Previous filename */ |
| 341 | timeline_utc(), TAG_BRANCH |
| 342 | ); |
| 343 | if( firstChngOnly ){ |
| @@ -501,11 +501,11 @@ | |
| 501 | if( fShowId ){ |
| 502 | @ (%d(fmid)) |
| 503 | } |
| 504 | @ %W(zCom) (user: |
| 505 | hyperlink_to_user(zUser, zDate, ""); |
| 506 | @ branch: %h(zBr)) |
| 507 | if( g.perm.Hyperlink && zUuid ){ |
| 508 | const char *z = zFilename; |
| 509 | @ %z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin)) |
| 510 | @ [annotate]</a> |
| 511 | @ %z(href("%R/blame?filename=%h&checkin=%s",z,zCkin)) |
| 512 |
| --- src/finfo.c | |
| +++ src/finfo.c | |
| @@ -333,11 +333,11 @@ | |
| 333 | " (SELECT uuid FROM blob WHERE rid=mlink.pid)," /* Parent file uuid */ |
| 334 | " (SELECT uuid FROM blob WHERE rid=mlink.fid)," /* Current file uuid */ |
| 335 | " (SELECT uuid FROM blob WHERE rid=mlink.mid)," /* Check-in uuid */ |
| 336 | " event.bgcolor," /* Background color */ |
| 337 | " (SELECT value FROM tagxref WHERE tagid=%d AND tagtype>0" |
| 338 | " AND tagxref.rid=mlink.mid)," /* Branchname */ |
| 339 | " mlink.mid," /* check-in ID */ |
| 340 | " mlink.pfnid", /* Previous filename */ |
| 341 | timeline_utc(), TAG_BRANCH |
| 342 | ); |
| 343 | if( firstChngOnly ){ |
| @@ -501,11 +501,11 @@ | |
| 501 | if( fShowId ){ |
| 502 | @ (%d(fmid)) |
| 503 | } |
| 504 | @ %W(zCom) (user: |
| 505 | hyperlink_to_user(zUser, zDate, ""); |
| 506 | @ branch: %z(href("%R/timeline?t=%T&n=200",zBr))%h(zBr)</a> |
| 507 | if( g.perm.Hyperlink && zUuid ){ |
| 508 | const char *z = zFilename; |
| 509 | @ %z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin)) |
| 510 | @ [annotate]</a> |
| 511 | @ %z(href("%R/blame?filename=%h&checkin=%s",z,zCkin)) |
| 512 |
+13
| --- src/manifest.c | ||
| +++ src/manifest.c | ||
| @@ -1799,10 +1799,23 @@ | ||
| 1799 | 1799 | "INSERT OR IGNORE INTO plink(pid, cid, isprim, mtime, baseid)" |
| 1800 | 1800 | "VALUES(%d, %d, %d, %.17g, %s)", |
| 1801 | 1801 | pid, rid, i==0, p->rDate, zBaseId/*safe-for-%s*/); |
| 1802 | 1802 | add_mlink(pid, 0, rid, p, i); |
| 1803 | 1803 | if( i==0 ) parentid = pid; |
| 1804 | + } | |
| 1805 | + if( p->nParent>1 ){ | |
| 1806 | + /* Remove incorrect MLINK create-file entries that arise when a | |
| 1807 | + ** file is added by merge. */ | |
| 1808 | + db_multi_exec( | |
| 1809 | + "DELETE FROM mlink" | |
| 1810 | + " WHERE mid=%d" | |
| 1811 | + " AND pid=0" | |
| 1812 | + " AND fnid IN " | |
| 1813 | + " (SELECT fnid FROM mlink WHERE mid=%d GROUP BY fnid" | |
| 1814 | + " HAVING count(*)<%d)", | |
| 1815 | + rid, rid, p->nParent | |
| 1816 | + ); | |
| 1804 | 1817 | } |
| 1805 | 1818 | db_prepare(&q, "SELECT cid, isprim FROM plink WHERE pid=%d", rid); |
| 1806 | 1819 | while( db_step(&q)==SQLITE_ROW ){ |
| 1807 | 1820 | int cid = db_column_int(&q, 0); |
| 1808 | 1821 | int isprim = db_column_int(&q, 1); |
| 1809 | 1822 |
| --- src/manifest.c | |
| +++ src/manifest.c | |
| @@ -1799,10 +1799,23 @@ | |
| 1799 | "INSERT OR IGNORE INTO plink(pid, cid, isprim, mtime, baseid)" |
| 1800 | "VALUES(%d, %d, %d, %.17g, %s)", |
| 1801 | pid, rid, i==0, p->rDate, zBaseId/*safe-for-%s*/); |
| 1802 | add_mlink(pid, 0, rid, p, i); |
| 1803 | if( i==0 ) parentid = pid; |
| 1804 | } |
| 1805 | db_prepare(&q, "SELECT cid, isprim FROM plink WHERE pid=%d", rid); |
| 1806 | while( db_step(&q)==SQLITE_ROW ){ |
| 1807 | int cid = db_column_int(&q, 0); |
| 1808 | int isprim = db_column_int(&q, 1); |
| 1809 |
| --- src/manifest.c | |
| +++ src/manifest.c | |
| @@ -1799,10 +1799,23 @@ | |
| 1799 | "INSERT OR IGNORE INTO plink(pid, cid, isprim, mtime, baseid)" |
| 1800 | "VALUES(%d, %d, %d, %.17g, %s)", |
| 1801 | pid, rid, i==0, p->rDate, zBaseId/*safe-for-%s*/); |
| 1802 | add_mlink(pid, 0, rid, p, i); |
| 1803 | if( i==0 ) parentid = pid; |
| 1804 | } |
| 1805 | if( p->nParent>1 ){ |
| 1806 | /* Remove incorrect MLINK create-file entries that arise when a |
| 1807 | ** file is added by merge. */ |
| 1808 | db_multi_exec( |
| 1809 | "DELETE FROM mlink" |
| 1810 | " WHERE mid=%d" |
| 1811 | " AND pid=0" |
| 1812 | " AND fnid IN " |
| 1813 | " (SELECT fnid FROM mlink WHERE mid=%d GROUP BY fnid" |
| 1814 | " HAVING count(*)<%d)", |
| 1815 | rid, rid, p->nParent |
| 1816 | ); |
| 1817 | } |
| 1818 | db_prepare(&q, "SELECT cid, isprim FROM plink WHERE pid=%d", rid); |
| 1819 | while( db_step(&q)==SQLITE_ROW ){ |
| 1820 | int cid = db_column_int(&q, 0); |
| 1821 | int isprim = db_column_int(&q, 1); |
| 1822 |