Skip to content

Ignore rules (.gitignore / .arbor config) not honored outside a git repo — venv/vendored trees bloat the graph #167

Description

@vortxhq

Summary

In a non-git directory, arbor appears to honor no exclusion mechanism, so dependency and
vendored trees (e.g. venv/, node_modules/, site-packages/, decompiled/vendored code) get fully
indexed and dominate the graph — inflating index size, status, and centrality ranking.

What I observed (sandbox, arbor 2.2.0 and re-checked on 2.6.0)

Indexing a plain (non-git) directory, verified by reading .arbor/graph.json:

mechanism excluded?
built-in excludes (venv/node_modules/site-packages) no
.gitignore (dir is not a git repo) no
.arborignore no
ignore list in .arbor/config.json no
git init + .gitignore yes
moving files out of the tree (symlink back) yes (symlinks not followed by default)

Concretely, a venv/ with ~27k files ended up in the graph, producing a multi-GB graph.json, while
the real first-party code was a few thousand files.

Repro

  1. mkdir demo && cd demo (do not git init)
  2. add src/main.py plus a venv/lib/.../pkg/mod.py and a .gitignore containing venv/
  3. arbor index .
  4. inspect .arbor/graph.json → the venv symbols are present

Expected
Outside a git repo, honor .gitignore (root + nested) and/or the ignore list in .arbor/config.json,
so users can exclude dependencies without needing git init.

Workarounds today

  • git init + .gitignore (arbor then honors it), or
  • relocate the heavy trees out of the indexed directory and symlink them back.

Either would be nicer as native config. Happy to help repro further. Thanks for arbor!

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions