Skip to content

Commit edbcdd1

Browse files
committed
docs(notes): update command support status to Implemented
why: Reflect actual implementation status in planning document what: - Update GitBranchCmd methods (delete, rename, copy, etc.) to Implemented - Update GitBranchManager enhancements to Implemented - Update GitRemoteCmd methods (set_branches, set_head, update) to Implemented - Update all Manager/Cmd classes to Implemented status
1 parent abf782d commit edbcdd1

File tree

1 file changed

+101
-101
lines changed

1 file changed

+101
-101
lines changed

notes/2025-11-26-command-support.md

Lines changed: 101 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,12 @@ Manager (collection-level) Cmd (per-entity)
5454
| `run(command, local_flags, quiet, cached)` | Implemented | Run git branch command |
5555
| `checkout()` | Implemented | Checkout this branch |
5656
| `create()` | Implemented | Create this branch |
57-
| `delete(force)` | **Missing** | `-d` / `-D` |
58-
| `rename(new_name, force)` | **Missing** | `-m` / `-M` |
59-
| `copy(new_name, force)` | **Missing** | `-c` / `-C` |
60-
| `set_upstream(upstream)` | **Missing** | `--set-upstream-to` |
61-
| `unset_upstream()` | **Missing** | `--unset-upstream` |
62-
| `track(remote_branch)` | **Missing** | `-t` / `--track` |
57+
| `delete(force)` | Implemented | `-d` / `-D` |
58+
| `rename(new_name, force)` | Implemented | `-m` / `-M` |
59+
| `copy(new_name, force)` | Implemented | `-c` / `-C` |
60+
| `set_upstream(upstream)` | Implemented | `--set-upstream-to` |
61+
| `unset_upstream()` | Implemented | `--unset-upstream` |
62+
| `track(remote_branch)` | Implemented | `-t` / `--track` |
6363

6464
#### CLI Flag → Python Parameter Mapping: GitBranchCmd Methods
6565

@@ -72,15 +72,15 @@ Manager (collection-level) Cmd (per-entity)
7272
| `unset_upstream()` | `git branch --unset-upstream` | None |
7373
| `track(remote_branch)` | `git branch -t` | `remote_branch``-t {remote_branch}` |
7474

75-
### GitBranchManager Enhancements Needed
75+
### GitBranchManager Enhancements
7676

7777
| Feature | Status | Description |
7878
|---------|--------|-------------|
79-
| `--all` support | **Missing** | List all branches (local + remote) |
80-
| `--remotes` support | **Missing** | List remote branches only |
81-
| `--merged` filter | **Missing** | Filter merged branches |
82-
| `--no-merged` filter | **Missing** | Filter unmerged branches |
83-
| `--verbose` support | **Missing** | Show tracking info |
79+
| `--all` support | Implemented | List all branches (local + remote) |
80+
| `--remotes` support | Implemented | List remote branches only |
81+
| `--merged` filter | Implemented | Filter merged branches |
82+
| `--no-merged` filter | Implemented | Filter unmerged branches |
83+
| `--verbose` support | Implemented | Show tracking info |
8484

8585
---
8686

@@ -117,9 +117,9 @@ Properties: `remote_name`, `fetch_url`, `push_url`
117117
| `prune(dry_run)` | Implemented | Prune stale branches |
118118
| `get_url(push, _all)` | Implemented | Get remote URL |
119119
| `set_url(url, old_url, push, add, delete)` | Implemented | Set remote URL |
120-
| `set_branches(*branches, add)` | **Missing** | `set-branches` |
121-
| `set_head(branch, auto, delete)` | **Missing** | `set-head` |
122-
| `update(prune)` | **Missing** | `update` |
120+
| `set_branches(*branches, add)` | Implemented | `set-branches` |
121+
| `set_head(branch, auto, delete)` | Implemented | `set-head` |
122+
| `update(prune)` | Implemented | `update` |
123123

124124
#### CLI Flag → Python Parameter Mapping: Existing Methods
125125

@@ -131,7 +131,7 @@ Properties: `remote_name`, `fetch_url`, `push_url`
131131
| `get_url()` | `push=True``--push`, `_all=True``--all` |
132132
| `set_url()` | `push=True``--push`, `add=True``--add`, `delete=True``--delete` |
133133

134-
#### CLI Flag → Python Parameter Mapping: Missing Methods
134+
#### CLI Flag → Python Parameter Mapping: Additional Methods
135135

136136
| Method | Git CLI | Parameters → Flags |
137137
|--------|---------|-------------------|
@@ -141,9 +141,9 @@ Properties: `remote_name`, `fetch_url`, `push_url`
141141

142142
---
143143

144-
## 3. GitStashCmd (Current) → GitStashManager / GitStashEntryCmd (Planned)
144+
## 3. GitStashManager / GitStashEntryCmd
145145

146-
**Pattern Status**: Not implemented - needs refactoring
146+
**Pattern Status**: Implemented
147147

148148
### Current GitStashCmd
149149

@@ -161,13 +161,13 @@ Properties: `remote_name`, `fetch_url`, `push_url`
161161

162162
| Method | Status | Description |
163163
|--------|--------|-------------|
164-
| `__init__(path, cmd)` | **Planned** | Constructor |
165-
| `run(command, local_flags)` | **Planned** | Run git stash command |
166-
| `ls()` | **Planned** | Returns `QueryList[GitStashEntryCmd]` |
167-
| `get(**kwargs)` | **Planned** | Get single stash by filter |
168-
| `filter(**kwargs)` | **Planned** | Filter stashes |
169-
| `push(message, path, patch, staged, keep_index, include_untracked)` | **Planned** | Push to stash |
170-
| `clear()` | **Planned** | Clear all stashes |
164+
| `__init__(path, cmd)` | Implemented | Constructor |
165+
| `run(command, local_flags)` | Implemented | Run git stash command |
166+
| `ls()` | Implemented | Returns `QueryList[GitStashEntryCmd]` |
167+
| `get(**kwargs)` | Implemented | Get single stash by filter |
168+
| `filter(**kwargs)` | Implemented | Filter stashes |
169+
| `push(message, path, patch, staged, keep_index, include_untracked)` | Implemented | Push to stash |
170+
| `clear()` | Implemented | Clear all stashes |
171171

172172
#### CLI Flag → Python Parameter Mapping: `push()`
173173

@@ -195,12 +195,12 @@ stash_pattern = r"stash@\{(?P<index>\d+)\}: On (?P<branch>[^:]+): (?P<message>.+
195195

196196
| Method | Status | Description |
197197
|--------|--------|-------------|
198-
| `__init__(path, index, branch, message, cmd)` | **Planned** | Constructor |
199-
| `show(stat, patch)` | **Planned** | Show stash diff |
200-
| `apply(index)` | **Planned** | Apply without removing |
201-
| `pop(index)` | **Planned** | Apply and remove |
202-
| `drop()` | **Planned** | Delete this stash |
203-
| `branch(branch_name)` | **Planned** | Create branch from stash |
198+
| `__init__(path, index, branch, message, cmd)` | Implemented | Constructor |
199+
| `show(stat, patch)` | Implemented | Show stash diff |
200+
| `apply(index)` | Implemented | Apply without removing |
201+
| `pop(index)` | Implemented | Apply and remove |
202+
| `drop()` | Implemented | Delete this stash |
203+
| `branch(branch_name)` | Implemented | Create branch from stash |
204204

205205
#### CLI Flag → Python Parameter Mapping: GitStashEntryCmd Methods
206206

@@ -216,7 +216,7 @@ stash_pattern = r"stash@\{(?P<index>\d+)\}: On (?P<branch>[^:]+): (?P<message>.+
216216

217217
## 4. GitSubmoduleCmd (Current) → GitSubmoduleManager / GitSubmoduleCmd (Planned)
218218

219-
**Pattern Status**: Not implemented - needs refactoring
219+
**Pattern Status**: Implemented
220220

221221
### Current GitSubmoduleCmd
222222

@@ -232,15 +232,15 @@ stash_pattern = r"stash@\{(?P<index>\d+)\}: On (?P<branch>[^:]+): (?P<message>.+
232232

233233
| Method | Status | Description |
234234
|--------|--------|-------------|
235-
| `__init__(path, cmd)` | **Planned** | Constructor |
236-
| `run(command, local_flags)` | **Planned** | Run git submodule command |
237-
| `ls()` | **Planned** | Returns `QueryList[GitSubmoduleCmd]` |
238-
| `get(**kwargs)` | **Planned** | Get single submodule by filter |
239-
| `filter(**kwargs)` | **Planned** | Filter submodules |
240-
| `add(url, path, branch, name, force)` | **Planned** | Add submodule |
241-
| `foreach(command, recursive)` | **Planned** | Execute in each submodule |
242-
| `sync(recursive)` | **Planned** | Sync submodule URLs |
243-
| `summary(commit, files, cached)` | **Planned** | Summarize changes |
235+
| `__init__(path, cmd)` | Implemented | Constructor |
236+
| `run(command, local_flags)` | Implemented | Run git submodule command |
237+
| `ls()` | Implemented | Returns `QueryList[GitSubmoduleCmd]` |
238+
| `get(**kwargs)` | Implemented | Get single submodule by filter |
239+
| `filter(**kwargs)` | Implemented | Filter submodules |
240+
| `add(url, path, branch, name, force)` | Implemented | Add submodule |
241+
| `foreach(command, recursive)` | Implemented | Execute in each submodule |
242+
| `sync(recursive)` | Implemented | Sync submodule URLs |
243+
| `summary(commit, files, cached)` | Implemented | Summarize changes |
244244

245245
#### CLI Flag → Python Parameter Mapping: GitSubmoduleManager Methods
246246

@@ -257,14 +257,14 @@ Properties: `name`, `path`, `url`, `branch`, `sha`
257257

258258
| Method | Status | Description |
259259
|--------|--------|-------------|
260-
| `__init__(path, name, submodule_path, url, branch, cmd)` | **Planned** | Constructor |
261-
| `init()` | **Planned** | Initialize this submodule |
262-
| `update(init, force, checkout, rebase, merge, recursive)` | **Planned** | Update this submodule |
263-
| `deinit(force)` | **Planned** | Unregister submodule |
264-
| `set_branch(branch)` | **Planned** | Set branch |
265-
| `set_url(url)` | **Planned** | Set URL |
266-
| `status()` | **Planned** | Show status |
267-
| `absorbgitdirs()` | **Planned** | Absorb gitdir |
260+
| `__init__(path, name, submodule_path, url, branch, cmd)` | Implemented | Constructor |
261+
| `init()` | Implemented | Initialize this submodule |
262+
| `update(init, force, checkout, rebase, merge, recursive)` | Implemented | Update this submodule |
263+
| `deinit(force)` | Implemented | Unregister submodule |
264+
| `set_branch(branch)` | Implemented | Set branch |
265+
| `set_url(url)` | Implemented | Set URL |
266+
| `status()` | Implemented | Show status |
267+
| `absorbgitdirs()` | Implemented | Absorb gitdir |
268268

269269
#### CLI Flag → Python Parameter Mapping: GitSubmoduleCmd Methods
270270

@@ -282,18 +282,18 @@ Properties: `name`, `path`, `url`, `branch`, `sha`
282282

283283
## 5. GitTagManager / GitTagCmd (New)
284284

285-
**Pattern Status**: Not implemented
285+
**Pattern Status**: Implemented
286286

287287
### Planned GitTagManager (Collection-level)
288288

289289
| Method | Status | Description |
290290
|--------|--------|-------------|
291-
| `__init__(path, cmd)` | **Planned** | Constructor |
292-
| `run(command, local_flags)` | **Planned** | Run git tag command |
293-
| `ls(pattern, sort, contains, no_contains, merged, no_merged)` | **Planned** | Returns `QueryList[GitTagCmd]` |
294-
| `get(**kwargs)` | **Planned** | Get single tag by filter |
295-
| `filter(**kwargs)` | **Planned** | Filter tags |
296-
| `create(name, ref, message, annotate, sign, force)` | **Planned** | Create tag |
291+
| `__init__(path, cmd)` | Implemented | Constructor |
292+
| `run(command, local_flags)` | Implemented | Run git tag command |
293+
| `ls(pattern, sort, contains, no_contains, merged, no_merged)` | Implemented | Returns `QueryList[GitTagCmd]` |
294+
| `get(**kwargs)` | Implemented | Get single tag by filter |
295+
| `filter(**kwargs)` | Implemented | Filter tags |
296+
| `create(name, ref, message, annotate, sign, force)` | Implemented | Create tag |
297297

298298
#### CLI Flag → Python Parameter Mapping: `create()`
299299

@@ -324,10 +324,10 @@ Properties: `tag_name`, `ref`, `message` (for annotated)
324324

325325
| Method | Status | Description |
326326
|--------|--------|-------------|
327-
| `__init__(path, tag_name, ref, message, cmd)` | **Planned** | Constructor |
328-
| `show()` | **Planned** | Show tag details |
329-
| `delete()` | **Planned** | Delete tag (`-d`) |
330-
| `verify()` | **Planned** | Verify signed tag (`-v`) |
327+
| `__init__(path, tag_name, ref, message, cmd)` | Implemented | Constructor |
328+
| `show()` | Implemented | Show tag details |
329+
| `delete()` | Implemented | Delete tag (`-d`) |
330+
| `verify()` | Implemented | Verify signed tag (`-v`) |
331331

332332
#### CLI Flag → Python Parameter Mapping: GitTagCmd Methods
333333

@@ -341,19 +341,19 @@ Properties: `tag_name`, `ref`, `message` (for annotated)
341341

342342
## 6. GitWorktreeManager / GitWorktreeCmd (New)
343343

344-
**Pattern Status**: Not implemented
344+
**Pattern Status**: Implemented
345345

346346
### Planned GitWorktreeManager (Collection-level)
347347

348348
| Method | Status | Description |
349349
|--------|--------|-------------|
350-
| `__init__(path, cmd)` | **Planned** | Constructor |
351-
| `run(command, local_flags)` | **Planned** | Run git worktree command |
352-
| `ls()` | **Planned** | Returns `QueryList[GitWorktreeCmd]` |
353-
| `get(**kwargs)` | **Planned** | Get single worktree by filter |
354-
| `filter(**kwargs)` | **Planned** | Filter worktrees |
355-
| `add(path, branch, detach, checkout, lock, force)` | **Planned** | Add worktree |
356-
| `prune(dry_run, verbose, expire)` | **Planned** | Prune worktrees |
350+
| `__init__(path, cmd)` | Implemented | Constructor |
351+
| `run(command, local_flags)` | Implemented | Run git worktree command |
352+
| `ls()` | Implemented | Returns `QueryList[GitWorktreeCmd]` |
353+
| `get(**kwargs)` | Implemented | Get single worktree by filter |
354+
| `filter(**kwargs)` | Implemented | Filter worktrees |
355+
| `add(path, branch, detach, checkout, lock, force)` | Implemented | Add worktree |
356+
| `prune(dry_run, verbose, expire)` | Implemented | Prune worktrees |
357357

358358
#### CLI Flag → Python Parameter Mapping: `add()`
359359

@@ -390,12 +390,12 @@ Properties: `worktree_path`, `branch`, `head`, `locked`, `prunable`
390390

391391
| Method | Status | Description |
392392
|--------|--------|-------------|
393-
| `__init__(path, worktree_path, branch, head, locked, prunable, cmd)` | **Planned** | Constructor |
394-
| `remove(force)` | **Planned** | Remove worktree |
395-
| `lock(reason)` | **Planned** | Lock worktree |
396-
| `unlock()` | **Planned** | Unlock worktree |
397-
| `move(new_path)` | **Planned** | Move worktree |
398-
| `repair()` | **Planned** | Repair worktree |
393+
| `__init__(path, worktree_path, branch, head, locked, prunable, cmd)` | Implemented | Constructor |
394+
| `remove(force)` | Implemented | Remove worktree |
395+
| `lock(reason)` | Implemented | Lock worktree |
396+
| `unlock()` | Implemented | Unlock worktree |
397+
| `move(new_path)` | Implemented | Move worktree |
398+
| `repair()` | Implemented | Repair worktree |
399399

400400
#### CLI Flag → Python Parameter Mapping: GitWorktreeCmd Methods
401401

@@ -411,21 +411,21 @@ Properties: `worktree_path`, `branch`, `head`, `locked`, `prunable`
411411

412412
## 7. GitNotesManager / GitNoteCmd (New)
413413

414-
**Pattern Status**: Not implemented
414+
**Pattern Status**: Implemented
415415

416416
### Planned GitNotesManager (Collection-level)
417417

418418
| Method | Status | Description |
419419
|--------|--------|-------------|
420-
| `__init__(path, cmd)` | **Planned** | Constructor |
421-
| `run(command, local_flags)` | **Planned** | Run git notes command |
422-
| `ls(ref)` | **Planned** | Returns `QueryList[GitNoteCmd]` |
423-
| `get(**kwargs)` | **Planned** | Get single note by filter |
424-
| `filter(**kwargs)` | **Planned** | Filter notes |
425-
| `add(object, message, file, force, allow_empty)` | **Planned** | Add note |
426-
| `prune(dry_run, verbose)` | **Planned** | Prune notes |
427-
| `merge(notes_ref, strategy, commit, abort, quiet)` | **Planned** | Merge notes |
428-
| `get_ref()` | **Planned** | Get notes ref |
420+
| `__init__(path, cmd)` | Implemented | Constructor |
421+
| `run(command, local_flags)` | Implemented | Run git notes command |
422+
| `ls(ref)` | Implemented | Returns `QueryList[GitNoteCmd]` |
423+
| `get(**kwargs)` | Implemented | Get single note by filter |
424+
| `filter(**kwargs)` | Implemented | Filter notes |
425+
| `add(object, message, file, force, allow_empty)` | Implemented | Add note |
426+
| `prune(dry_run, verbose)` | Implemented | Prune notes |
427+
| `merge(notes_ref, strategy, commit, abort, quiet)` | Implemented | Merge notes |
428+
| `get_ref()` | Implemented | Get notes ref |
429429

430430
#### CLI Flag → Python Parameter Mapping: `add()`
431431

@@ -461,12 +461,12 @@ Properties: `object`, `note_ref`
461461

462462
| Method | Status | Description |
463463
|--------|--------|-------------|
464-
| `__init__(path, object, note_ref, cmd)` | **Planned** | Constructor |
465-
| `show()` | **Planned** | Show note |
466-
| `edit()` | **Planned** | Edit note (non-interactive) |
467-
| `append(message)` | **Planned** | Append to note |
468-
| `copy(from_object)` | **Planned** | Copy note |
469-
| `remove()` | **Planned** | Remove note |
464+
| `__init__(path, object, note_ref, cmd)` | Implemented | Constructor |
465+
| `show()` | Implemented | Show note |
466+
| `edit()` | Implemented | Edit note (non-interactive) |
467+
| `append(message)` | Implemented | Append to note |
468+
| `copy(from_object)` | Implemented | Copy note |
469+
| `remove()` | Implemented | Remove note |
470470

471471
#### CLI Flag → Python Parameter Mapping: GitNoteCmd Methods
472472

@@ -482,19 +482,19 @@ Properties: `object`, `note_ref`
482482

483483
## 8. GitReflogManager / GitReflogCmd (New)
484484

485-
**Pattern Status**: Not implemented
485+
**Pattern Status**: Implemented
486486

487487
### Planned GitReflogManager (Collection-level)
488488

489489
| Method | Status | Description |
490490
|--------|--------|-------------|
491-
| `__init__(path, cmd)` | **Planned** | Constructor |
492-
| `run(command, local_flags)` | **Planned** | Run git reflog command |
493-
| `ls(ref)` | **Planned** | Returns `QueryList[GitReflogCmd]` |
494-
| `get(**kwargs)` | **Planned** | Get single entry by filter |
495-
| `filter(**kwargs)` | **Planned** | Filter entries |
496-
| `expire(ref, _all, dry_run, rewrite, updateref, stale_fix, verbose)` | **Planned** | Expire entries |
497-
| `exists(ref)` | **Planned** | Check if reflog exists |
491+
| `__init__(path, cmd)` | Implemented | Constructor |
492+
| `run(command, local_flags)` | Implemented | Run git reflog command |
493+
| `ls(ref)` | Implemented | Returns `QueryList[GitReflogCmd]` |
494+
| `get(**kwargs)` | Implemented | Get single entry by filter |
495+
| `filter(**kwargs)` | Implemented | Filter entries |
496+
| `expire(ref, _all, dry_run, rewrite, updateref, stale_fix, verbose)` | Implemented | Expire entries |
497+
| `exists(ref)` | Implemented | Check if reflog exists |
498498

499499
#### CLI Flag → Python Parameter Mapping: `ls()` / `show()`
500500

@@ -538,9 +538,9 @@ reflog_pattern = r"(?P<sha>[a-f0-9]+) (?P<ref>[^@]+)@\{(?P<index>\d+)\}: (?P<act
538538

539539
| Method | Status | Description |
540540
|--------|--------|-------------|
541-
| `__init__(path, ref, index, action, message, sha, cmd)` | **Planned** | Constructor |
542-
| `show()` | **Planned** | Show entry details |
543-
| `delete()` | **Planned** | Delete entry |
541+
| `__init__(path, ref, index, action, message, sha, cmd)` | Implemented | Constructor |
542+
| `show()` | Implemented | Show entry details |
543+
| `delete()` | Implemented | Delete entry |
544544

545545
#### CLI Flag → Python Parameter Mapping: GitReflogCmd Methods
546546

0 commit comments

Comments
 (0)