Range-diff !533

back to !533 Code navigation: symbol index and jump to definition

1:  4dce419 ! 1:  b1cab20 symbols: index definitions per default-branch tree
    @@ internal/mirror/mirror.go: func (w *Worker) sweep() {
      	}
      }
     
    - ## internal/store/migrations/0070_symbols.down.sql (new) ##
    + ## internal/store/migrations/0072_symbols.down.sql (new) ##
     @@
     +DROP TABLE symbol_requests;
     +DROP TABLE symbols;
     +DROP TABLE symbol_indexes;
     
    - ## internal/store/migrations/0070_symbols.up.sql (new) ##
    + ## internal/store/migrations/0072_symbols.up.sql (new) ##
     @@
     +-- One symbol index per repository: the definitions found in the tree of
     +-- the default branch's head (#293). tree is the key: a head whose tree is
2:  17ecc53 = 2:  2d31586 repo symbols and admin symbols reindex
3:  2ddbd86 ! 3:  7a781d1 web: link names to their definitions
    @@ .gitbay/wiki/Users.org: gitbay repo settings git-daemon you/project on      # ex
     
      ## CHANGELOG.org ##
     @@ CHANGELOG.org: anything beyond "replace the binary and restart" is needed.
    -   the clone instead. =repo commit-file= and applying a suggestion
    -   refuse once the owner's storage quota is used up, as a push does.
    -   Migration 0069 (#288).
    +   attributes it emits; MathML written as raw HTML is still stripped.
    +   Anything outside the subset, and math past 1000 expressions or
    +   256 KiB of TeX in one document, shows as source (#294).
     +- Code navigation. A push or merge to the default branch queues a symbol
     +  index of its tree, built by a background worker and keyed by the tree
     +  id, so an unchanged tree is not indexed again. =repo symbols
    @@ internal/web/web_test.go: func TestWhenNamesTheZone(t *testing.T) {
      // none. The merge request page picks wide for its diff view, so it gets
      // a per-view define instead of a fixed one.
      func TestMainWidthClass(t *testing.T) {
    --	wide := map[string]bool{"tree.html": true, "blob.html": true, "blame.html": true, "log.html": true, "commit.html": true, "compare.html": true, "builds.html": true, "build.html": true, "search.html": true, "globalsearch.html": true, "edit.html": true, "dashboard.html": true, "issues.html": true, "mrs.html": true, "mrrangediff.html": true, "explore.html": true, "notifications.html": true, "settings.html": true, "account.html": true, "admin.html": true, "adminusers.html": true}
    -+	wide := map[string]bool{"tree.html": true, "blob.html": true, "blame.html": true, "log.html": true, "commit.html": true, "compare.html": true, "builds.html": true, "build.html": true, "search.html": true, "symbols.html": true, "globalsearch.html": true, "edit.html": true, "dashboard.html": true, "issues.html": true, "mrs.html": true, "mrrangediff.html": true, "explore.html": true, "notifications.html": true, "settings.html": true, "account.html": true, "admin.html": true, "adminusers.html": true}
    +-	wide := map[string]bool{"tree.html": true, "blob.html": true, "blame.html": true, "log.html": true, "commit.html": true, "compare.html": true, "builds.html": true, "build.html": true, "search.html": true, "globalsearch.html": true, "edit.html": true, "dashboard.html": true, "issues.html": true, "mrs.html": true, "mrrangediff.html": true, "explore.html": true, "notifications.html": true, "settings.html": true, "account.html": true, "admin.html": true, "adminusers.html": true, "queries.html": true}
    ++	wide := map[string]bool{"tree.html": true, "blob.html": true, "blame.html": true, "log.html": true, "commit.html": true, "compare.html": true, "builds.html": true, "build.html": true, "search.html": true, "symbols.html": true, "globalsearch.html": true, "edit.html": true, "dashboard.html": true, "issues.html": true, "mrs.html": true, "mrrangediff.html": true, "explore.html": true, "notifications.html": true, "settings.html": true, "account.html": true, "admin.html": true, "adminusers.html": true, "queries.html": true}
      	bounded := map[string]bool{"landing.html": true, "fork.html": true, "login.html": true, "logout.html": true, "register.html": true, "registered.html": true, "new.html": true, "issuenew.html": true, "mrnew.html": true, "snippetnew.html": true, "privacy.html": true, "404.html": true}
      	perView := map[string]string{"mr.html": `{{define "width"}}{{if eq .View "diff"}}wide{{else}}reading{{end}}{{end}}`}
      	for _, name := range Pages() {
4:  ec72d51 ! 4:  c528009 symbols: chunked builds, failure records, name and byte bounds
    @@ internal/httpd/web.go: func (s *Server) blob(w http.ResponseWriter, r *http.Requ
      	// Markdown and org render like a README, with the source one click
      	// away; ?view=source shows the text instead.
     
    - ## internal/store/migrations/0070_symbols.down.sql ##
    + ## internal/store/migrations/0072_symbols.down.sql ##
     @@
      DROP TABLE symbol_requests;
     +DROP TABLE symbol_failures;
      DROP TABLE symbols;
      DROP TABLE symbol_indexes;
     
    - ## internal/store/migrations/0070_symbols.up.sql ##
    + ## internal/store/migrations/0072_symbols.up.sql ##
     @@
     --- One symbol index per repository: the definitions found in the tree of
     --- the default branch's head (#293). tree is the key: a head whose tree is
    @@ internal/store/migrations/0070_symbols.up.sql
      -- name is what is listed, key the name as written at a use site (they
      -- differ for Go methods: Type.Method and Method). lname and lkey are
      -- their lower-case forms, for case-insensitive prefix ranges.
    -@@ internal/store/migrations/0070_symbols.up.sql: CREATE INDEX symbols_lname ON symbols(index_id, lname);
    +@@ internal/store/migrations/0072_symbols.up.sql: CREATE INDEX symbols_lname ON symbols(index_id, lname);
      CREATE INDEX symbols_lkey ON symbols(index_id, lkey);
      CREATE INDEX symbols_key ON symbols(index_id, key);
      CREATE INDEX symbols_path ON symbols(index_id, path, line);