Fossil SCM

On the /timeline page, if the p= and bt= query parameters are both present but n= is omitted, then make n as large as it needs to be to cover all ancestors of p= back to the limiting checkin specified by bt=.

drh 2020-11-24 21:24 trunk
Commit 34f5ea44038583fe7bd255659bf28272b574b18bfc2e434c2ffe2ac363a93bc1
1 file changed +3 -1
+3 -1
--- src/timeline.c
+++ src/timeline.c
@@ -1734,12 +1734,14 @@
17341734
int secondaryRid = 0; /* Show secondary highlight */
17351735
int disableY = 0; /* Disable type selector on submenu */
17361736
int advancedMenu = 0; /* Use the advanced menu design */
17371737
char *zPlural; /* Ending for plural forms */
17381738
int showCherrypicks = 1; /* True to show cherrypick merges */
1739
+ int haveParameterN; /* True if n= query parameter present */
17391740
17401741
/* Set number of rows to display */
1742
+ haveParameterN = P("n")!=0;
17411743
cookie_read_parameter("n","n");
17421744
z = P("n");
17431745
if( z==0 ) z = db_get("timeline-default-length",0);
17441746
if( z ){
17451747
if( fossil_strcmp(z,"all")==0 ){
@@ -2064,11 +2066,10 @@
20642066
" WHERE mlink.mid=x"
20652067
" AND mlink.fnid=filename.fnid AND %s)",
20662068
glob_expr("filename.name", zChng)
20672069
);
20682070
}
2069
-// tmFlags |= TIMELINE_DISJOINT;
20702071
tmFlags |= TIMELINE_XMERGE | TIMELINE_FILLGAPS;
20712072
db_multi_exec("%s", blob_sql_text(&sql));
20722073
if( advancedMenu ){
20732074
style_submenu_checkbox("v", "Files", (zType[0]!='a' && zType[0]!='c'),0);
20742075
}
@@ -2118,10 +2119,11 @@
21182119
db_multi_exec("DELETE FROM ok");
21192120
}
21202121
if( p_rid ){
21212122
zBackTo = P("bt");
21222123
ridBackTo = zBackTo ? name_to_typed_rid(zBackTo,"ci") : 0;
2124
+ if( !haveParameterN ) nEntry = 0;
21232125
compute_ancestors(p_rid, nEntry==0 ? 0 : nEntry+1, 0, ridBackTo);
21242126
np = db_int(0, "SELECT count(*)-1 FROM ok");
21252127
if( np>0 || nd==0 ){
21262128
if( nd>0 ) blob_appendf(&desc, " and ");
21272129
blob_appendf(&desc, "%d ancestor%s", np, (1==np)?"":"s");
21282130
--- src/timeline.c
+++ src/timeline.c
@@ -1734,12 +1734,14 @@
1734 int secondaryRid = 0; /* Show secondary highlight */
1735 int disableY = 0; /* Disable type selector on submenu */
1736 int advancedMenu = 0; /* Use the advanced menu design */
1737 char *zPlural; /* Ending for plural forms */
1738 int showCherrypicks = 1; /* True to show cherrypick merges */
 
1739
1740 /* Set number of rows to display */
 
1741 cookie_read_parameter("n","n");
1742 z = P("n");
1743 if( z==0 ) z = db_get("timeline-default-length",0);
1744 if( z ){
1745 if( fossil_strcmp(z,"all")==0 ){
@@ -2064,11 +2066,10 @@
2064 " WHERE mlink.mid=x"
2065 " AND mlink.fnid=filename.fnid AND %s)",
2066 glob_expr("filename.name", zChng)
2067 );
2068 }
2069 // tmFlags |= TIMELINE_DISJOINT;
2070 tmFlags |= TIMELINE_XMERGE | TIMELINE_FILLGAPS;
2071 db_multi_exec("%s", blob_sql_text(&sql));
2072 if( advancedMenu ){
2073 style_submenu_checkbox("v", "Files", (zType[0]!='a' && zType[0]!='c'),0);
2074 }
@@ -2118,10 +2119,11 @@
2118 db_multi_exec("DELETE FROM ok");
2119 }
2120 if( p_rid ){
2121 zBackTo = P("bt");
2122 ridBackTo = zBackTo ? name_to_typed_rid(zBackTo,"ci") : 0;
 
2123 compute_ancestors(p_rid, nEntry==0 ? 0 : nEntry+1, 0, ridBackTo);
2124 np = db_int(0, "SELECT count(*)-1 FROM ok");
2125 if( np>0 || nd==0 ){
2126 if( nd>0 ) blob_appendf(&desc, " and ");
2127 blob_appendf(&desc, "%d ancestor%s", np, (1==np)?"":"s");
2128
--- src/timeline.c
+++ src/timeline.c
@@ -1734,12 +1734,14 @@
1734 int secondaryRid = 0; /* Show secondary highlight */
1735 int disableY = 0; /* Disable type selector on submenu */
1736 int advancedMenu = 0; /* Use the advanced menu design */
1737 char *zPlural; /* Ending for plural forms */
1738 int showCherrypicks = 1; /* True to show cherrypick merges */
1739 int haveParameterN; /* True if n= query parameter present */
1740
1741 /* Set number of rows to display */
1742 haveParameterN = P("n")!=0;
1743 cookie_read_parameter("n","n");
1744 z = P("n");
1745 if( z==0 ) z = db_get("timeline-default-length",0);
1746 if( z ){
1747 if( fossil_strcmp(z,"all")==0 ){
@@ -2064,11 +2066,10 @@
2066 " WHERE mlink.mid=x"
2067 " AND mlink.fnid=filename.fnid AND %s)",
2068 glob_expr("filename.name", zChng)
2069 );
2070 }
 
2071 tmFlags |= TIMELINE_XMERGE | TIMELINE_FILLGAPS;
2072 db_multi_exec("%s", blob_sql_text(&sql));
2073 if( advancedMenu ){
2074 style_submenu_checkbox("v", "Files", (zType[0]!='a' && zType[0]!='c'),0);
2075 }
@@ -2118,10 +2119,11 @@
2119 db_multi_exec("DELETE FROM ok");
2120 }
2121 if( p_rid ){
2122 zBackTo = P("bt");
2123 ridBackTo = zBackTo ? name_to_typed_rid(zBackTo,"ci") : 0;
2124 if( !haveParameterN ) nEntry = 0;
2125 compute_ancestors(p_rid, nEntry==0 ? 0 : nEntry+1, 0, ridBackTo);
2126 np = db_int(0, "SELECT count(*)-1 FROM ok");
2127 if( np>0 || nd==0 ){
2128 if( nd>0 ) blob_appendf(&desc, " and ");
2129 blob_appendf(&desc, "%d ancestor%s", np, (1==np)?"":"s");
2130

Keyboard Shortcuts

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