Skip to content

Commit f3dcb4b

Browse files
Mbd06bclaude
andcommitted
parity: close git branch (steward verified)
All 37 it-bearing sections of tests/journey/parity/branch.sh are green: 30 bytes-mode rows (list/filter/create/move/copy/delete) and 7 effect-mode rows (cmdmode-stub upstream / edit-description / quiet, full create/rename/copy/delete with effect-only ledger checks for the experimental gates). Matrix row flipped from `partial` to `present` with a present-state notes summary. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 1b5ba2d commit f3dcb4b

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

docs/parity/commands.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Deferred flag-level rows and compat-only rows live in [SHORTCOMINGS.md](SHORTCOM
3333
| checkout || absent |||
3434
| switch || absent |||
3535
| restore || absent |||
36-
| branch | gix branch | partial | [branch.sh](../../tests/journey/parity/branch.sh) | TODO scaffold across help / error-paths / list-mode (bare / `-l` / `-r` / `-a` / `--show-current` / `-v/-vv` / `--abbrev` / `--contains` / `--no-contains` / `--merged` / `--no-merged` / `--points-at` / `--format` / `--sort` / `--column` / `--color` / `--omit-empty` / `-i`) / create mode (`<name>`, `<name> <start-point>`, invalid-name, already-exists, `-f`, `--track`, `--recurse-submodules`, `--create-reflog`) / upstream (`-u` / `--set-upstream-to` / `--unset-upstream` / `--edit-description`) / move (`-m`/`-M`) / copy (`-c`/`-C`) / delete (`-d`/`-D`/`-r -d`). Currently only `gix branch list [--all]` is wired via a nested-Subcommand shape; closing rows requires restructuring `Subcommands::Branch(Platform)` to a flag-bearing top-level struct that mirrors git's cmdmode + modifier flags. |
36+
| branch | gix branch | present | [branch.sh](../../tests/journey/parity/branch.sh) | 37 green `it`-bearing sections covering the full git-branch flag surface from vendor/git/Documentation/git-branch.adoc OPTIONS: meta (--help, --bogus-flag, outside-repo), list mode (bare, -l/--list, -r/--remotes, -a/--all, --show-current, -v/-vv, -q/--quiet, --abbrev/--no-abbrev, --contains, --no-contains, --merged, --no-merged, --points-at, --format, --sort, --column/--no-column, --color/--no-color, --omit-empty, -i/--ignore-case), create mode (`<name>`, `<name> <start-point>`, invalid-name, existing-name, -f/--force, -t/--track + --no-track, --recurse-submodules gate-error, --create-reflog), upstream (-u/--set-upstream-to, --unset-upstream, --edit-description), move (-m/-M), copy (-c/-C with worktree-checkout guard), delete (-d/-D, -r -d). Real implementations: flag-bearing top-level Platform mirroring git's cmdmode (replaces the prior nested-Subcommand shape), pattern filter via `gix::glob::wildmatch`, ancestry filters (--contains/--no-contains via `commit_contains`, --merged/--no-merged via inclusive `ancestors_of` set), --points-at via direct ObjectId equality, minimal for-each-ref atom interpreter for --format (refname / refname:short / refname:strip=N / refname:lstrip=N + %XX hex escapes), --sort=refname / -refname (last-key wins primary), refs/remotes/ prefix when --all pairs with locals, three RefEdit-based mutating subroutines (`create` with PreviousValue::MustNotExist gate + already-exists pre-check, `rename` two-RefEdit transaction, `copy` single Update with worktree-checkout guard, `delete` with RefLog::AndReference). Compat-effect rows tracked in SHORTCOMINGS.md: --verbose -v/-vv rendering (column-aligned sha+subject+upstream tracking), --abbrev cooperation with -v, --column=always packing, --track upstream-config write, -u/--set-upstream-to= config write, --unset-upstream config clear, --edit-description EDITOR-spawn. Deprecated `--set-upstream` (adoc:278) intentionally omitted — git itself documents it as "no longer supported". sha256 blocker: gix-config rejects extensions.objectFormat=sha256 (gix/src/config/tree/sections/extensions.rs), so every repo-opening row is sha1-only. Dual rows: --help, (outside a repository). |
3737
| tag | gix tag | present | [tag.sh](../../tests/journey/parity/tag.sh) | Full flag surface wired across list / delete / verify / create modes. List: -l/--list, <pattern>, -n, --sort (default order bytes; key interpreter compat-deferred), --format with %(refname[:short,:strip=N,:lstrip=N]), %(objectname), %(objecttype) + %XX hex escapes, --omit-empty, --column/--no-column (packing compat-deferred), --contains/--no-contains, --merged/--no-merged, --points-at, -i/--ignore-case, --color. Delete: -d/--delete (single, multi, mix-existing+nonexistent). Verify: -v on annotated-unsigned/lightweight/nonexistent (GPG backend still unimplemented; tests assert the three non-signature error paths). Create: lightweight `<name> [<commit>]`, -f/--force replace, invalid-name rejection (bytes), annotated `-a`/`-m` (multi-paragraph), `-F <file>` (stdin deferred pending expect_parity_reset stdin plumbing), --cleanup {verbatim/whitespace/strip/bogus}, -e/--edit (no-op under EDITOR=true), --trailer (accumulating), --create-reflog/--no-create-reflog (flag accepted; reflog write deferred at gix-ref level), -s/-u/--local-user (emit git-compat no-backend error + exit 128), --no-sign. `tag.gpgSign` config-read-then-sign is out of scope. sha256 blocker: gix-config rejects extensions.objectFormat=sha256 (gix/src/config/tree/sections/extensions.rs), so every repo-opening row is sha1-only. Dual rows: --help, (outside a repository). |
3838
| stash || absent |||
3939
| cherry-pick || absent |||

0 commit comments

Comments
 (0)