Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

Refresh the issue index from what changed

34a404b394dd9abcce0a67e32e99342c69595413 · Keenan Nemetz · 10d ago · parent fdf2340f

Refresh the issue index from what changed

A page read after a write used to reload every issue and renumber the repository from the whole branch history. Ensure now applies the difference between the indexed commit and the tip: it reloads only changed issues, adds only the numbers the range created, and leaves every other row alone. A rewritten branch or a missing index still falls back to the full rebuild.

The detail page and the browser write handlers now read one issue instead of the whole issue tree. Issue writes no longer re-validate the whole metadata tree after a write the writer already validated; the pre-receive hook still owns that check for pushes.

core/git/git.go +13−1

@@ -856,7 +856,19 @@ func (r *Repo) DiffNameStatus(from, to string) ([]string, error) {
856 856 // as a write, or a check that only looks at additions can be walked past by
857 857 // editing a file that already exists.
858 858 func (r *Repo) DiffStatus(old, new string) (map[string]string, error) {
859 out, errs, err := r.run(nil, "diff-tree", "-r", "--no-commit-id", "--name-status", old, new)
859 return r.DiffStatusPaths(old, new)
860 }
861
862 // DiffStatusPaths is DiffStatus limited to the given pathspecs. An incremental
863 // refresh only cares about the subtrees it indexes, so a range that also carries
864 // unrelated changes does not scan them.
865 func (r *Repo) DiffStatusPaths(old, new string, pathspecs ...string) (map[string]string, error) {
866 args := []string{"diff-tree", "-r", "--no-commit-id", "--name-status", old, new}
867 if len(pathspecs) > 0 {
868 args = append(args, "--")
869 args = append(args, pathspecs...)
870 }
871 out, errs, err := r.run(nil, args...)
860 872 if err != nil {
861 873 return nil, fmt.Errorf("diff-tree %s..%s: %w: %s", old, new, err, errs)
862 874 }