Fossil

Check-in [34f5ea44]
Login

Check-in [34f5ea44]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment: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=.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 34f5ea44038583fe7bd255659bf28272b574b18bfc2e434c2ffe2ac363a93bc1
User & Date: drh 2020-11-24 21:24:28
References
2020-12-31
01:20
Fix check-in [34f5ea44038583fe] so that it only disables the limit on the number of entries in a timeline if both d= and bt= are both present. ... (check-in: c353212c user: drh tags: trunk)
Context
2020-11-25
21:22
Change the way that wiki edits are stored in the Event table in order to address ticket [4e558dbf3d2511ce]. The Event.comment field for a wiki page change now stores just the raw name of the wiki page prefixed with a single character "+", "-", or ":" to indicate if the page was added, deleted, or modified, respectively. Formatting is handled by the timeline rendering. A "fossil rebuild" is required. The "timeline" command is not yet fixed. ... (check-in: 1a9b1c4d user: drh tags: trunk)
20:55
When using "fossil command --help" restrict the ambiguous matching to just commands to avoid breaking prefixes that otherwise work fine as a command. For example, "fossil di" works fine as a command, but "fossil di --help" suddenly makes it ambiguous. ... (check-in: 99f650af user: andybradford tags: ambiguous-help)
2020-11-24
21:24
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=. ... (check-in: 34f5ea44 user: drh tags: trunk)
00:10
Update the built-in SQLite to the 3.34.0 first beta, for testing. ... (check-in: 39b114c1 user: drh tags: trunk)
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/timeline.c.

1732
1733
1734
1735
1736
1737
1738

1739
1740

1741
1742
1743
1744
1745
1746
1747
  char *zNewerButton = 0;             /* URL for Newer button at the top */
  int selectedRid = 0;                /* Show a highlight on this RID */
  int secondaryRid = 0;               /* Show secondary highlight */
  int disableY = 0;                   /* Disable type selector on submenu */
  int advancedMenu = 0;               /* Use the advanced menu design */
  char *zPlural;                      /* Ending for plural forms */
  int showCherrypicks = 1;            /* True to show cherrypick merges */


  /* Set number of rows to display */

  cookie_read_parameter("n","n");
  z = P("n");
  if( z==0 ) z = db_get("timeline-default-length",0);
  if( z ){
    if( fossil_strcmp(z,"all")==0 ){
      nEntry = 0;
    }else{







>


>







1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
  char *zNewerButton = 0;             /* URL for Newer button at the top */
  int selectedRid = 0;                /* Show a highlight on this RID */
  int secondaryRid = 0;               /* Show secondary highlight */
  int disableY = 0;                   /* Disable type selector on submenu */
  int advancedMenu = 0;               /* Use the advanced menu design */
  char *zPlural;                      /* Ending for plural forms */
  int showCherrypicks = 1;            /* True to show cherrypick merges */
  int haveParameterN;                 /* True if n= query parameter present */

  /* Set number of rows to display */
  haveParameterN = P("n")!=0;
  cookie_read_parameter("n","n");
  z = P("n");
  if( z==0 ) z = db_get("timeline-default-length",0);
  if( z ){
    if( fossil_strcmp(z,"all")==0 ){
      nEntry = 0;
    }else{
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
        "DELETE FROM pathnode "
        " WHERE NOT EXISTS(SELECT 1 FROM mlink, filename"
                          " WHERE mlink.mid=x"
                          "   AND mlink.fnid=filename.fnid AND %s)",
        glob_expr("filename.name", zChng)
      );
    }
//    tmFlags |= TIMELINE_DISJOINT;
    tmFlags |= TIMELINE_XMERGE | TIMELINE_FILLGAPS;
    db_multi_exec("%s", blob_sql_text(&sql));
    if( advancedMenu ){
      style_submenu_checkbox("v", "Files", (zType[0]!='a' && zType[0]!='c'),0);
    }
    nNodeOnPath = db_int(0, "SELECT count(*) FROM temp.pathnode");
    blob_appendf(&desc, "%d check-ins going from ", nNodeOnPath);







<







2064
2065
2066
2067
2068
2069
2070

2071
2072
2073
2074
2075
2076
2077
        "DELETE FROM pathnode "
        " WHERE NOT EXISTS(SELECT 1 FROM mlink, filename"
                          " WHERE mlink.mid=x"
                          "   AND mlink.fnid=filename.fnid AND %s)",
        glob_expr("filename.name", zChng)
      );
    }

    tmFlags |= TIMELINE_XMERGE | TIMELINE_FILLGAPS;
    db_multi_exec("%s", blob_sql_text(&sql));
    if( advancedMenu ){
      style_submenu_checkbox("v", "Files", (zType[0]!='a' && zType[0]!='c'),0);
    }
    nNodeOnPath = db_int(0, "SELECT count(*) FROM temp.pathnode");
    blob_appendf(&desc, "%d check-ins going from ", nNodeOnPath);
2116
2117
2118
2119
2120
2121
2122

2123
2124
2125
2126
2127
2128
2129
      }
      if( useDividers ) selectedRid = d_rid;
      db_multi_exec("DELETE FROM ok");
    }
    if( p_rid ){
      zBackTo = P("bt");
      ridBackTo = zBackTo ? name_to_typed_rid(zBackTo,"ci") : 0;

      compute_ancestors(p_rid, nEntry==0 ? 0 : nEntry+1, 0, ridBackTo);
      np = db_int(0, "SELECT count(*)-1 FROM ok");
      if( np>0 || nd==0 ){
        if( nd>0 ) blob_appendf(&desc, " and ");
        blob_appendf(&desc, "%d ancestor%s", np, (1==np)?"":"s");
        db_multi_exec("%s", blob_sql_text(&sql));
      }







>







2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
      }
      if( useDividers ) selectedRid = d_rid;
      db_multi_exec("DELETE FROM ok");
    }
    if( p_rid ){
      zBackTo = P("bt");
      ridBackTo = zBackTo ? name_to_typed_rid(zBackTo,"ci") : 0;
      if( !haveParameterN ) nEntry = 0;
      compute_ancestors(p_rid, nEntry==0 ? 0 : nEntry+1, 0, ridBackTo);
      np = db_int(0, "SELECT count(*)-1 FROM ok");
      if( np>0 || nd==0 ){
        if( nd>0 ) blob_appendf(&desc, " and ");
        blob_appendf(&desc, "%d ancestor%s", np, (1==np)?"":"s");
        db_multi_exec("%s", blob_sql_text(&sql));
      }