Fossil SCM

Try to skip diff rendering when not necessary, like on rename or executable bit change without file modification.

mgagnon 2024-09-17 23:49 trunk
Commit f69cf768ccb74e6d9df57177f79f6a6189ed668f03851e135dbbbdebdfcaadd5
2 files changed +10 -2 +7 -5
+10 -2
--- src/finfo.c
+++ src/finfo.c
@@ -620,10 +620,11 @@
620620
int fnid = db_column_int(&q, 13);
621621
const char *zFName = db_column_text(&q,14);
622622
int gidx;
623623
char zTime[10];
624624
int nParent = 0;
625
+ int bIsModified = 0;
625626
GraphRowId aParent[GR_MAX_RAIL];
626627
627628
db_bind_int(&qparent, ":fid", frid);
628629
db_bind_int(&qparent, ":mid", fmid);
629630
db_bind_int(&qparent, ":fnid", fnid);
@@ -661,19 +662,26 @@
661662
@ </td>
662663
if( zBgClr && zBgClr[0] ){
663664
@ <td class="timeline%s(zStyle)Cell" id='mc%d(gidx)'>
664665
}else{
665666
@ <td class="timeline%s(zStyle)Cell">
667
+ }
668
+ if( zPUuid && zUuid && fossil_strcmp(zPUuid, zUuid)!=0 ){
669
+ bIsModified = 1;
666670
}
667671
if( tmFlags & TIMELINE_COMPACT ){
668672
@ <span class='timelineCompactComment' data-id='%d(frid)'>
669673
}else{
670674
@ <span class='timeline%s(zStyle)Comment'>
671675
if( pfnid ){
672676
char *zPrevName = db_text(0,"SELECT name FROM filename WHERE fnid=%d",
673677
pfnid);
674
- @ <b>Renamed</b> %h(zPrevName) &rarr; %h(zFName).
678
+ if( bIsModified ){
679
+ @ <b>Renamed and modified</b> %h(zPrevName) &rarr; %h(zFName).
680
+ }else{
681
+ @ <b>Renamed</b> %h(zPrevName) &rarr; %h(zFName).
682
+ }
675683
fossil_free(zPrevName);
676684
}
677685
if( zUuid && ridTo==0 && nParent==0 ){
678686
@ <b>Added:</b>
679687
}
@@ -756,11 +764,11 @@
756764
@ %z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin))
757765
@ [annotate]</a>
758766
@ %z(href("%R/blame?filename=%h&checkin=%s",z,zCkin))
759767
@ [blame]</a>
760768
@ %z(href("%R/timeline?uf=%!S",zUuid))[check-ins&nbsp;using]</a>
761
- if( fpid>0 ){
769
+ if( fpid>0 && bIsModified!=0 ){
762770
@ %z(href("%R/fdiff?v1=%!S&v2=%!S",zPUuid,zUuid))[diff]</a>
763771
}
764772
if( fileedit_is_editable(zFName) ){
765773
@ %z(href("%R/fileedit?filename=%T&checkin=%!S",zFName,zCkin))\
766774
@ [edit]</a>
767775
--- src/finfo.c
+++ src/finfo.c
@@ -620,10 +620,11 @@
620 int fnid = db_column_int(&q, 13);
621 const char *zFName = db_column_text(&q,14);
622 int gidx;
623 char zTime[10];
624 int nParent = 0;
 
625 GraphRowId aParent[GR_MAX_RAIL];
626
627 db_bind_int(&qparent, ":fid", frid);
628 db_bind_int(&qparent, ":mid", fmid);
629 db_bind_int(&qparent, ":fnid", fnid);
@@ -661,19 +662,26 @@
661 @ </td>
662 if( zBgClr && zBgClr[0] ){
663 @ <td class="timeline%s(zStyle)Cell" id='mc%d(gidx)'>
664 }else{
665 @ <td class="timeline%s(zStyle)Cell">
 
 
 
666 }
667 if( tmFlags & TIMELINE_COMPACT ){
668 @ <span class='timelineCompactComment' data-id='%d(frid)'>
669 }else{
670 @ <span class='timeline%s(zStyle)Comment'>
671 if( pfnid ){
672 char *zPrevName = db_text(0,"SELECT name FROM filename WHERE fnid=%d",
673 pfnid);
674 @ <b>Renamed</b> %h(zPrevName) &rarr; %h(zFName).
 
 
 
 
675 fossil_free(zPrevName);
676 }
677 if( zUuid && ridTo==0 && nParent==0 ){
678 @ <b>Added:</b>
679 }
@@ -756,11 +764,11 @@
756 @ %z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin))
757 @ [annotate]</a>
758 @ %z(href("%R/blame?filename=%h&checkin=%s",z,zCkin))
759 @ [blame]</a>
760 @ %z(href("%R/timeline?uf=%!S",zUuid))[check-ins&nbsp;using]</a>
761 if( fpid>0 ){
762 @ %z(href("%R/fdiff?v1=%!S&v2=%!S",zPUuid,zUuid))[diff]</a>
763 }
764 if( fileedit_is_editable(zFName) ){
765 @ %z(href("%R/fileedit?filename=%T&checkin=%!S",zFName,zCkin))\
766 @ [edit]</a>
767
--- src/finfo.c
+++ src/finfo.c
@@ -620,10 +620,11 @@
620 int fnid = db_column_int(&q, 13);
621 const char *zFName = db_column_text(&q,14);
622 int gidx;
623 char zTime[10];
624 int nParent = 0;
625 int bIsModified = 0;
626 GraphRowId aParent[GR_MAX_RAIL];
627
628 db_bind_int(&qparent, ":fid", frid);
629 db_bind_int(&qparent, ":mid", fmid);
630 db_bind_int(&qparent, ":fnid", fnid);
@@ -661,19 +662,26 @@
662 @ </td>
663 if( zBgClr && zBgClr[0] ){
664 @ <td class="timeline%s(zStyle)Cell" id='mc%d(gidx)'>
665 }else{
666 @ <td class="timeline%s(zStyle)Cell">
667 }
668 if( zPUuid && zUuid && fossil_strcmp(zPUuid, zUuid)!=0 ){
669 bIsModified = 1;
670 }
671 if( tmFlags & TIMELINE_COMPACT ){
672 @ <span class='timelineCompactComment' data-id='%d(frid)'>
673 }else{
674 @ <span class='timeline%s(zStyle)Comment'>
675 if( pfnid ){
676 char *zPrevName = db_text(0,"SELECT name FROM filename WHERE fnid=%d",
677 pfnid);
678 if( bIsModified ){
679 @ <b>Renamed and modified</b> %h(zPrevName) &rarr; %h(zFName).
680 }else{
681 @ <b>Renamed</b> %h(zPrevName) &rarr; %h(zFName).
682 }
683 fossil_free(zPrevName);
684 }
685 if( zUuid && ridTo==0 && nParent==0 ){
686 @ <b>Added:</b>
687 }
@@ -756,11 +764,11 @@
764 @ %z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin))
765 @ [annotate]</a>
766 @ %z(href("%R/blame?filename=%h&checkin=%s",z,zCkin))
767 @ [blame]</a>
768 @ %z(href("%R/timeline?uf=%!S",zUuid))[check-ins&nbsp;using]</a>
769 if( fpid>0 && bIsModified!=0 ){
770 @ %z(href("%R/fdiff?v1=%!S&v2=%!S",zPUuid,zUuid))[diff]</a>
771 }
772 if( fileedit_is_editable(zFName) ){
773 @ %z(href("%R/fileedit?filename=%T&checkin=%!S",zFName,zCkin))\
774 @ [edit]</a>
775
+7 -5
--- src/info.c
+++ src/info.c
@@ -436,15 +436,17 @@
436436
@ %h(zName)</a> version %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a>.
437437
}else{
438438
@ Added %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zName,zNew,zCkin))\
439439
@ %h(zName)</a> version %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
440440
}
441
- if( pCfg ){
442
- append_diff(zOld, zNew, pCfg);
443
- }else if( zOld && zNew && fossil_strcmp(zOld,zNew)!=0 ){
444
- @ &nbsp;&nbsp;
445
- @ %z(href("%R/fdiff?v1=%!S&v2=%!S",zOld,zNew))[diff]</a>
441
+ if( zOld && zNew && fossil_strcmp(zOld,zNew)!=0 ){
442
+ if( pCfg ){
443
+ append_diff(zOld, zNew, pCfg);
444
+ }else{
445
+ @ &nbsp;&nbsp;
446
+ @ %z(href("%R/fdiff?v1=%!S&v2=%!S",zOld,zNew))[diff]</a>
447
+ }
446448
}
447449
}
448450
@ </p>
449451
}
450452
451453
--- src/info.c
+++ src/info.c
@@ -436,15 +436,17 @@
436 @ %h(zName)</a> version %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a>.
437 }else{
438 @ Added %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zName,zNew,zCkin))\
439 @ %h(zName)</a> version %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
440 }
441 if( pCfg ){
442 append_diff(zOld, zNew, pCfg);
443 }else if( zOld && zNew && fossil_strcmp(zOld,zNew)!=0 ){
444 @ &nbsp;&nbsp;
445 @ %z(href("%R/fdiff?v1=%!S&v2=%!S",zOld,zNew))[diff]</a>
 
 
446 }
447 }
448 @ </p>
449 }
450
451
--- src/info.c
+++ src/info.c
@@ -436,15 +436,17 @@
436 @ %h(zName)</a> version %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a>.
437 }else{
438 @ Added %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zName,zNew,zCkin))\
439 @ %h(zName)</a> version %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
440 }
441 if( zOld && zNew && fossil_strcmp(zOld,zNew)!=0 ){
442 if( pCfg ){
443 append_diff(zOld, zNew, pCfg);
444 }else{
445 @ &nbsp;&nbsp;
446 @ %z(href("%R/fdiff?v1=%!S&v2=%!S",zOld,zNew))[diff]</a>
447 }
448 }
449 }
450 @ </p>
451 }
452
453

Keyboard Shortcuts

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