Fossil SCM

Add hyperlinks to the branch diff page from branch timeline and from /info.

drh 2019-08-27 12:36 vdiff-improvements
Commit 833b220adc20fe57dd301adca264c7bb21d5b44f5b17c79540dc2bdab6011c67
2 files changed +7 -6 +7 -5
+7 -6
--- src/info.c
+++ src/info.c
@@ -665,10 +665,11 @@
665665
const char *zRe; /* regex parameter */
666666
ReCompiled *pRe = 0; /* regex */
667667
const char *zW; /* URL param for ignoring whitespace */
668668
const char *zPage = "vinfo"; /* Page that shows diffs */
669669
const char *zPageHide = "ci"; /* Page that hides diffs */
670
+ const char *zBrName; /* Branch name */
670671
671672
login_check_credentials();
672673
if( !g.perm.Read ){ login_needed(g.anon.Read); return; }
673674
zName = P("name");
674675
rid = name_to_rid_www("name");
@@ -693,10 +694,11 @@
693694
" FROM blob, event"
694695
" WHERE blob.rid=%d"
695696
" AND event.objid=%d",
696697
rid, rid
697698
);
699
+ zBrName = branch_of_rid(rid);
698700
699701
cookie_link_parameter("diff","diff","2");
700702
diffType = atoi(PD("diff","2"));
701703
if( db_step(&q1)==SQLITE_ROW ){
702704
const char *zUuid = db_column_text(&q1, 0);
@@ -705,11 +707,10 @@
705707
const char *zUser;
706708
const char *zOrigUser;
707709
const char *zComment;
708710
const char *zDate;
709711
const char *zOrigDate;
710
- const char *zBrName;
711712
int okWiki = 0;
712713
Blob wiki_read_links = BLOB_INITIALIZER;
713714
Blob wiki_add_links = BLOB_INITIALIZER;
714715
715716
style_header("Check-in [%S]", zUuid);
@@ -719,13 +720,10 @@
719720
" WHERE tagid=%d AND rid=%d AND tagtype>0",
720721
TAG_USER, rid);
721722
zEComment = db_text(0,
722723
"SELECT value FROM tagxref WHERE tagid=%d AND rid=%d",
723724
TAG_COMMENT, rid);
724
- zBrName = db_text(0,
725
- "SELECT value FROM tagxref WHERE tagid=%d AND rid=%d",
726
- TAG_BRANCH, rid);
727725
zOrigUser = db_column_text(&q1, 2);
728726
zUser = zEUser ? zEUser : zOrigUser;
729727
zComment = db_column_text(&q1, 3);
730728
zDate = db_column_text(&q1,1);
731729
zOrigDate = db_column_text(&q1, 4);
@@ -886,11 +884,14 @@
886884
}
887885
888886
if( g.perm.Hyperlink ){
889887
@ <tr><th>Other&nbsp;Links:</th>
890888
@ <td>
891
- @ %z(href("%R/artifact/%!S",zUuid))manifest</a>
889
+ if( fossil_strcmp(zBrName, db_get("main-branch","trunk"))!=0 ){
890
+ @ %z(href("%R/vdiff?branch=%!S", zUuid))branch diff</a> |
891
+ }
892
+ @ %z(href("%R/artifact/%!S",zUuid))manifest</a>
892893
@ | %z(href("%R/ci_tags/%!S",zUuid))tags</a>
893894
if( g.perm.Admin ){
894895
@ | %z(href("%R/mlink?ci=%!S",zUuid))mlink table</a>
895896
}
896897
if( g.anon.Write ){
@@ -1286,11 +1287,11 @@
12861287
char *zRealBranch = branch_of_rid(ridTo);
12871288
char *zToUuid = rid_to_uuid(ridTo);
12881289
char *zFromUuid = rid_to_uuid(ridFrom);
12891290
@ <h2>Changes In Branch \
12901291
@ %z(href("%R/timeline?r=%T",zRealBranch))%h(zRealBranch)</a>
1291
- if( strcmp(zRealBranch,zBranch)!=0 ){
1292
+ if( ridTo != symbolic_name_to_rid(zRealBranch,"ci") ){
12921293
@ Through %z(href("%R/info/%!S",zToUuid))[%S(zToUuid)]</a>
12931294
}
12941295
@ Excluding Merge-Ins</h2>
12951296
@ <p>This is equivalent to a diff from
12961297
@ <span class='timelineSelected'>\
12971298
--- src/info.c
+++ src/info.c
@@ -665,10 +665,11 @@
665 const char *zRe; /* regex parameter */
666 ReCompiled *pRe = 0; /* regex */
667 const char *zW; /* URL param for ignoring whitespace */
668 const char *zPage = "vinfo"; /* Page that shows diffs */
669 const char *zPageHide = "ci"; /* Page that hides diffs */
 
670
671 login_check_credentials();
672 if( !g.perm.Read ){ login_needed(g.anon.Read); return; }
673 zName = P("name");
674 rid = name_to_rid_www("name");
@@ -693,10 +694,11 @@
693 " FROM blob, event"
694 " WHERE blob.rid=%d"
695 " AND event.objid=%d",
696 rid, rid
697 );
 
698
699 cookie_link_parameter("diff","diff","2");
700 diffType = atoi(PD("diff","2"));
701 if( db_step(&q1)==SQLITE_ROW ){
702 const char *zUuid = db_column_text(&q1, 0);
@@ -705,11 +707,10 @@
705 const char *zUser;
706 const char *zOrigUser;
707 const char *zComment;
708 const char *zDate;
709 const char *zOrigDate;
710 const char *zBrName;
711 int okWiki = 0;
712 Blob wiki_read_links = BLOB_INITIALIZER;
713 Blob wiki_add_links = BLOB_INITIALIZER;
714
715 style_header("Check-in [%S]", zUuid);
@@ -719,13 +720,10 @@
719 " WHERE tagid=%d AND rid=%d AND tagtype>0",
720 TAG_USER, rid);
721 zEComment = db_text(0,
722 "SELECT value FROM tagxref WHERE tagid=%d AND rid=%d",
723 TAG_COMMENT, rid);
724 zBrName = db_text(0,
725 "SELECT value FROM tagxref WHERE tagid=%d AND rid=%d",
726 TAG_BRANCH, rid);
727 zOrigUser = db_column_text(&q1, 2);
728 zUser = zEUser ? zEUser : zOrigUser;
729 zComment = db_column_text(&q1, 3);
730 zDate = db_column_text(&q1,1);
731 zOrigDate = db_column_text(&q1, 4);
@@ -886,11 +884,14 @@
886 }
887
888 if( g.perm.Hyperlink ){
889 @ <tr><th>Other&nbsp;Links:</th>
890 @ <td>
891 @ %z(href("%R/artifact/%!S",zUuid))manifest</a>
 
 
 
892 @ | %z(href("%R/ci_tags/%!S",zUuid))tags</a>
893 if( g.perm.Admin ){
894 @ | %z(href("%R/mlink?ci=%!S",zUuid))mlink table</a>
895 }
896 if( g.anon.Write ){
@@ -1286,11 +1287,11 @@
1286 char *zRealBranch = branch_of_rid(ridTo);
1287 char *zToUuid = rid_to_uuid(ridTo);
1288 char *zFromUuid = rid_to_uuid(ridFrom);
1289 @ <h2>Changes In Branch \
1290 @ %z(href("%R/timeline?r=%T",zRealBranch))%h(zRealBranch)</a>
1291 if( strcmp(zRealBranch,zBranch)!=0 ){
1292 @ Through %z(href("%R/info/%!S",zToUuid))[%S(zToUuid)]</a>
1293 }
1294 @ Excluding Merge-Ins</h2>
1295 @ <p>This is equivalent to a diff from
1296 @ <span class='timelineSelected'>\
1297
--- src/info.c
+++ src/info.c
@@ -665,10 +665,11 @@
665 const char *zRe; /* regex parameter */
666 ReCompiled *pRe = 0; /* regex */
667 const char *zW; /* URL param for ignoring whitespace */
668 const char *zPage = "vinfo"; /* Page that shows diffs */
669 const char *zPageHide = "ci"; /* Page that hides diffs */
670 const char *zBrName; /* Branch name */
671
672 login_check_credentials();
673 if( !g.perm.Read ){ login_needed(g.anon.Read); return; }
674 zName = P("name");
675 rid = name_to_rid_www("name");
@@ -693,10 +694,11 @@
694 " FROM blob, event"
695 " WHERE blob.rid=%d"
696 " AND event.objid=%d",
697 rid, rid
698 );
699 zBrName = branch_of_rid(rid);
700
701 cookie_link_parameter("diff","diff","2");
702 diffType = atoi(PD("diff","2"));
703 if( db_step(&q1)==SQLITE_ROW ){
704 const char *zUuid = db_column_text(&q1, 0);
@@ -705,11 +707,10 @@
707 const char *zUser;
708 const char *zOrigUser;
709 const char *zComment;
710 const char *zDate;
711 const char *zOrigDate;
 
712 int okWiki = 0;
713 Blob wiki_read_links = BLOB_INITIALIZER;
714 Blob wiki_add_links = BLOB_INITIALIZER;
715
716 style_header("Check-in [%S]", zUuid);
@@ -719,13 +720,10 @@
720 " WHERE tagid=%d AND rid=%d AND tagtype>0",
721 TAG_USER, rid);
722 zEComment = db_text(0,
723 "SELECT value FROM tagxref WHERE tagid=%d AND rid=%d",
724 TAG_COMMENT, rid);
 
 
 
725 zOrigUser = db_column_text(&q1, 2);
726 zUser = zEUser ? zEUser : zOrigUser;
727 zComment = db_column_text(&q1, 3);
728 zDate = db_column_text(&q1,1);
729 zOrigDate = db_column_text(&q1, 4);
@@ -886,11 +884,14 @@
884 }
885
886 if( g.perm.Hyperlink ){
887 @ <tr><th>Other&nbsp;Links:</th>
888 @ <td>
889 if( fossil_strcmp(zBrName, db_get("main-branch","trunk"))!=0 ){
890 @ %z(href("%R/vdiff?branch=%!S", zUuid))branch diff</a> |
891 }
892 @ %z(href("%R/artifact/%!S",zUuid))manifest</a>
893 @ | %z(href("%R/ci_tags/%!S",zUuid))tags</a>
894 if( g.perm.Admin ){
895 @ | %z(href("%R/mlink?ci=%!S",zUuid))mlink table</a>
896 }
897 if( g.anon.Write ){
@@ -1286,11 +1287,11 @@
1287 char *zRealBranch = branch_of_rid(ridTo);
1288 char *zToUuid = rid_to_uuid(ridTo);
1289 char *zFromUuid = rid_to_uuid(ridFrom);
1290 @ <h2>Changes In Branch \
1291 @ %z(href("%R/timeline?r=%T",zRealBranch))%h(zRealBranch)</a>
1292 if( ridTo != symbolic_name_to_rid(zRealBranch,"ci") ){
1293 @ Through %z(href("%R/info/%!S",zToUuid))[%S(zToUuid)]</a>
1294 }
1295 @ Excluding Merge-Ins</h2>
1296 @ <p>This is equivalent to a diff from
1297 @ <span class='timelineSelected'>\
1298
+7 -5
--- src/timeline.c
+++ src/timeline.c
@@ -2394,15 +2394,17 @@
23942394
blob_zero(&sql);
23952395
db_prepare(&q, "SELECT * FROM timeline ORDER BY sortby DESC /*scan*/");
23962396
if( fossil_islower(desc.aData[0]) ){
23972397
desc.aData[0] = fossil_toupper(desc.aData[0]);
23982398
}
2399
- if( zBrName
2400
- && !PB("nowiki")
2401
- && wiki_render_associated("branch", zBrName, WIKIASSOC_ALL)
2402
- ){
2403
- @ <div class="section">%b(&desc)</div>
2399
+ if( zBrName ){
2400
+ if( !PB("nowiki")
2401
+ && wiki_render_associated("branch", zBrName, WIKIASSOC_ALL)
2402
+ ){
2403
+ @ <div class="section">%b(&desc)</div>
2404
+ }
2405
+ style_submenu_element("Diff", "%R/vdiff?branch=%T", zBrName);
24042406
}else
24052407
if( zTagName
24062408
&& matchStyle==MS_EXACT
24072409
&& zBrName==0
24082410
&& !PB("nowiki")
24092411
--- src/timeline.c
+++ src/timeline.c
@@ -2394,15 +2394,17 @@
2394 blob_zero(&sql);
2395 db_prepare(&q, "SELECT * FROM timeline ORDER BY sortby DESC /*scan*/");
2396 if( fossil_islower(desc.aData[0]) ){
2397 desc.aData[0] = fossil_toupper(desc.aData[0]);
2398 }
2399 if( zBrName
2400 && !PB("nowiki")
2401 && wiki_render_associated("branch", zBrName, WIKIASSOC_ALL)
2402 ){
2403 @ <div class="section">%b(&desc)</div>
 
 
2404 }else
2405 if( zTagName
2406 && matchStyle==MS_EXACT
2407 && zBrName==0
2408 && !PB("nowiki")
2409
--- src/timeline.c
+++ src/timeline.c
@@ -2394,15 +2394,17 @@
2394 blob_zero(&sql);
2395 db_prepare(&q, "SELECT * FROM timeline ORDER BY sortby DESC /*scan*/");
2396 if( fossil_islower(desc.aData[0]) ){
2397 desc.aData[0] = fossil_toupper(desc.aData[0]);
2398 }
2399 if( zBrName ){
2400 if( !PB("nowiki")
2401 && wiki_render_associated("branch", zBrName, WIKIASSOC_ALL)
2402 ){
2403 @ <div class="section">%b(&desc)</div>
2404 }
2405 style_submenu_element("Diff", "%R/vdiff?branch=%T", zBrName);
2406 }else
2407 if( zTagName
2408 && matchStyle==MS_EXACT
2409 && zBrName==0
2410 && !PB("nowiki")
2411

Keyboard Shortcuts

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