You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 02e2cc4
Browse filesBrowse the repository at this point in the historyBrowse files
perf(gix): retain native repository handles on Repo
The native adapter previously called `gix.open_opts()` for every operation,
repeating configuration parsing and losing shared index/object-store state.
Each `Repo` now owns a native handle, associated with `Git` through a weak
reference. `close()` releases it and pickling excludes native resources.
Reuse preserves storage/environment guards. Metadata and environment changes,
and successful raw CLI launches, invalidate the configuration view and trigger
`reload()` on the retained handle. Config queries keep a separate fresh view
without synthetic safety settings. Includes reload conservatively because
GixPython does not expose their source paths. A per-repository lock prevents
concurrent refresh races; Gix handles read sharing and index/ODB refresh.
Validated Gix first: 260 affected tests and 14 subtests passed, with 3 skips;
38 native regressions passed again after the metadata guard was completed.
CLI compatibility: 222 affected tests and 14 subtests passed, with 3 skips.
Ruff lint/format, mypy and basedpyright passed.
0 commit comments