Fossil SCM

Updates to the /vdiff page with the branch=BRANCH query parameter so that it uses merge-in: instead of root: and thus excludes merge-in check-ins from the diff.

drh 2019-08-27 02:07 vdiff-improvements
Commit b36dc6f1215d6833be46dd6892b06f88cea4821132cb06d3d656cbaf55b97ebd
1 file changed +29 -6
+29 -6
--- src/info.c
+++ src/info.c
@@ -1207,10 +1207,11 @@
12071207
const char *zTo;
12081208
const char *zRe;
12091209
const char *zW;
12101210
const char *zGlob;
12111211
char *zQuery;
1212
+ char *zMergeOrigin = 0;
12121213
ReCompiled *pRe = 0;
12131214
login_check_credentials();
12141215
if( !g.perm.Read ){ login_needed(g.anon.Read); return; }
12151216
login_anonymous_available();
12161217
load_control();
@@ -1221,11 +1222,12 @@
12211222
if( zRe ) re_compile(&pRe, zRe, 0);
12221223
zBranch = P("branch");
12231224
if( zBranch && zBranch[0]==0 ) zBranch = 0;
12241225
if( zBranch ){
12251226
zQuery = mprintf("branch=%T", zBranch);
1226
- cgi_replace_parameter("from", mprintf("root:%s", zBranch));
1227
+ zMergeOrigin = mprintf("merge-in:%s", zBranch);
1228
+ cgi_replace_parameter("from", zMergeOrigin);
12271229
cgi_replace_parameter("to", zBranch);
12281230
}else{
12291231
zQuery = mprintf("from=%T&to=%T",PD("from",""),PD("to",""));
12301232
}
12311233
pTo = vdiff_parse_manifest("to", &ridTo);
@@ -1272,16 +1274,37 @@
12721274
style_submenu_element("Patch", "%R/vpatch?from=%T&to=%T%s", zFrom, zTo, zW);
12731275
}
12741276
if( diffType!=0 ){
12751277
style_submenu_checkbox("w", "Ignore Whitespace", 0, 0);
12761278
}
1277
- style_header("Check-in Differences");
1279
+ if( zBranch ){
1280
+ style_header("Changes On Branch %h", zBranch);
1281
+ }else{
1282
+ style_header("Check-in Differences");
1283
+ }
12781284
if( P("nohdr")==0 ){
1279
- @ <h2>Difference From <span class='timelineSelected'>\
1280
- @ %z(href("%R/info/%h",zFrom))%h(zFrom)</a></span>
1281
- @ To <span class='timelineSelected timelineSecondary'>\
1282
- @ %z(href("%R/info/%h",zTo))%h(zTo)</a></span></h2>
1285
+ if( zBranch ){
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 difference from
1296
+ @ <span class='timelineSelected'>\
1297
+ @ %z(href("%R/info/%!S",zFromUuid))%S(zFromUuid)</a></span>
1298
+ @ to <span class='timelineSelected timelineSecondary'>\
1299
+ @ %z(href("%R/info/%!S",zToUuid))%S(zToUuid)</a></span></p>
1300
+ }else{
1301
+ @ <h2>Difference From <span class='timelineSelected'>\
1302
+ @ %z(href("%R/info/%h",zFrom))%h(zFrom)</a></span>
1303
+ @ To <span class='timelineSelected timelineSecondary'>\
1304
+ @ %z(href("%R/info/%h",zTo))%h(zTo)</a></span></h2>
1305
+ }
12831306
render_checkin_context(ridFrom, ridTo, 0);
12841307
if( pRe ){
12851308
@ <p><b>Only differences that match regular expression "%h(zRe)"
12861309
@ are shown.</b></p>
12871310
}
12881311
--- src/info.c
+++ src/info.c
@@ -1207,10 +1207,11 @@
1207 const char *zTo;
1208 const char *zRe;
1209 const char *zW;
1210 const char *zGlob;
1211 char *zQuery;
 
1212 ReCompiled *pRe = 0;
1213 login_check_credentials();
1214 if( !g.perm.Read ){ login_needed(g.anon.Read); return; }
1215 login_anonymous_available();
1216 load_control();
@@ -1221,11 +1222,12 @@
1221 if( zRe ) re_compile(&pRe, zRe, 0);
1222 zBranch = P("branch");
1223 if( zBranch && zBranch[0]==0 ) zBranch = 0;
1224 if( zBranch ){
1225 zQuery = mprintf("branch=%T", zBranch);
1226 cgi_replace_parameter("from", mprintf("root:%s", zBranch));
 
1227 cgi_replace_parameter("to", zBranch);
1228 }else{
1229 zQuery = mprintf("from=%T&to=%T",PD("from",""),PD("to",""));
1230 }
1231 pTo = vdiff_parse_manifest("to", &ridTo);
@@ -1272,16 +1274,37 @@
1272 style_submenu_element("Patch", "%R/vpatch?from=%T&to=%T%s", zFrom, zTo, zW);
1273 }
1274 if( diffType!=0 ){
1275 style_submenu_checkbox("w", "Ignore Whitespace", 0, 0);
1276 }
1277 style_header("Check-in Differences");
 
 
 
 
1278 if( P("nohdr")==0 ){
1279 @ <h2>Difference From <span class='timelineSelected'>\
1280 @ %z(href("%R/info/%h",zFrom))%h(zFrom)</a></span>
1281 @ To <span class='timelineSelected timelineSecondary'>\
1282 @ %z(href("%R/info/%h",zTo))%h(zTo)</a></span></h2>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1283 render_checkin_context(ridFrom, ridTo, 0);
1284 if( pRe ){
1285 @ <p><b>Only differences that match regular expression "%h(zRe)"
1286 @ are shown.</b></p>
1287 }
1288
--- src/info.c
+++ src/info.c
@@ -1207,10 +1207,11 @@
1207 const char *zTo;
1208 const char *zRe;
1209 const char *zW;
1210 const char *zGlob;
1211 char *zQuery;
1212 char *zMergeOrigin = 0;
1213 ReCompiled *pRe = 0;
1214 login_check_credentials();
1215 if( !g.perm.Read ){ login_needed(g.anon.Read); return; }
1216 login_anonymous_available();
1217 load_control();
@@ -1221,11 +1222,12 @@
1222 if( zRe ) re_compile(&pRe, zRe, 0);
1223 zBranch = P("branch");
1224 if( zBranch && zBranch[0]==0 ) zBranch = 0;
1225 if( zBranch ){
1226 zQuery = mprintf("branch=%T", zBranch);
1227 zMergeOrigin = mprintf("merge-in:%s", zBranch);
1228 cgi_replace_parameter("from", zMergeOrigin);
1229 cgi_replace_parameter("to", zBranch);
1230 }else{
1231 zQuery = mprintf("from=%T&to=%T",PD("from",""),PD("to",""));
1232 }
1233 pTo = vdiff_parse_manifest("to", &ridTo);
@@ -1272,16 +1274,37 @@
1274 style_submenu_element("Patch", "%R/vpatch?from=%T&to=%T%s", zFrom, zTo, zW);
1275 }
1276 if( diffType!=0 ){
1277 style_submenu_checkbox("w", "Ignore Whitespace", 0, 0);
1278 }
1279 if( zBranch ){
1280 style_header("Changes On Branch %h", zBranch);
1281 }else{
1282 style_header("Check-in Differences");
1283 }
1284 if( P("nohdr")==0 ){
1285 if( zBranch ){
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 difference from
1296 @ <span class='timelineSelected'>\
1297 @ %z(href("%R/info/%!S",zFromUuid))%S(zFromUuid)</a></span>
1298 @ to <span class='timelineSelected timelineSecondary'>\
1299 @ %z(href("%R/info/%!S",zToUuid))%S(zToUuid)</a></span></p>
1300 }else{
1301 @ <h2>Difference From <span class='timelineSelected'>\
1302 @ %z(href("%R/info/%h",zFrom))%h(zFrom)</a></span>
1303 @ To <span class='timelineSelected timelineSecondary'>\
1304 @ %z(href("%R/info/%h",zTo))%h(zTo)</a></span></h2>
1305 }
1306 render_checkin_context(ridFrom, ridTo, 0);
1307 if( pRe ){
1308 @ <p><b>Only differences that match regular expression "%h(zRe)"
1309 @ are shown.</b></p>
1310 }
1311

Keyboard Shortcuts

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