Repository navigation
Commit 02e30df
feat(gix): list worktree metadata natively
Build the managed porcelain inventory from native main/linked repositories,
including branch, detached, unborn and lock metadata. Keep prunable entries on
Git for its diagnostics.
Support worktrees of bare main repositories using Gix's actual worktree path.
`Repository.is_bare()` intentionally reflects configuration and can be true
alongside a linked worktree. A record is bare only when that configuration has
no native worktree. The available metadata is sufficient; no upstream
classification fix or Python filesystem inference is needed.
Gix's `main_repo()` can retain `worktrees/linked/../..` in its Git-directory
path. Reopen that repository through Gix on a canonical input path, preserving
its native open options, instead of returning repaired metadata. This helper
can also handle gitfile targets. The SHA-1/SHA-256 regression compares locked,
unborn linked worktree inventories from both main and linked repositories.
Each supported inventory now avoids one CLI launch, including bare-main
inventories that previously required one. The regression forbids CLI execution
after setup and executable validation.
Validation: worktree/reftable/extension selection passed with Gix first
(10 passed, 1 skipped in 2.97s), then CLI (4 passed, 2 skipped in 2.47s).
Ruff lint/format and `git diff --check` passed.1 parent bd41042 commit 02e30df
2 files changed
Lines changed: 54 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
89 | 96 | | |
90 | 97 | | |
91 | 98 | | |
| |||
202 | 209 | | |
203 | 210 | | |
204 | 211 | | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
205 | 245 | | |
206 | 246 | | |
207 | 247 | | |
208 | 248 | | |
209 | 249 | | |
210 | 250 | | |
| 251 | + | |
211 | 252 | | |
212 | 253 | | |
213 | 254 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
43 | 56 | | |
44 | 57 | | |
45 | 58 | | |
| |||
0 commit comments