Skip to content

Commit c0d5308

Browse files
committed
docs(plan): update development plan with completed reset operations
Add Phase 5 for reset operations and renumber subsequent phases to reflect current project state with comprehensive reset functionality
1 parent 93895cf commit c0d5308

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

PLAN.md

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
- **Diff operations with multi-level API and comprehensive options**
1919
- **Tag management with comprehensive operations and filtering**
2020
- **Stash operations with comprehensive management and filtering**
21+
- **Reset operations with comprehensive reset modes and error handling**
2122

2223
## ✅ Phase 1: Essential Remote Operations (COMPLETED)
2324

@@ -77,12 +78,6 @@
7778
- [x] Type-safe TagType enum (Lightweight, Annotated)
7879
- [x] Complete tag metadata support (message, tagger, timestamp)
7980

80-
## Phase 5: Release Management (Medium Priority)
81-
82-
### Archive & Export
83-
- [ ] `repo.archive(format, output_path)` - Create repository archive
84-
- [ ] `repo.export_commit(hash, path)` - Export specific commit
85-
8681
## ✅ Phase 4: Stash Operations (COMPLETED)
8782

8883
### ✅ Stash Management
@@ -98,7 +93,26 @@
9893
- [x] StashApplyOptions builder with restore_index, quiet options
9994
- [x] Complete stash metadata support (index, message, hash, branch, timestamp)
10095

101-
## Phase 6: Development Workflow (Medium Priority)
96+
## ✅ Phase 5: Reset Operations (COMPLETED)
97+
98+
### ✅ Reset Management
99+
- [x] `repo.reset_soft(commit)` - Move HEAD, keep index and working tree
100+
- [x] `repo.reset_mixed(commit)` - Move HEAD, reset index, keep working tree (default)
101+
- [x] `repo.reset_hard(commit)` - Reset HEAD, index, and working tree to commit state
102+
- [x] `repo.reset_with_mode(commit, mode)` - Flexible reset with explicit ResetMode
103+
- [x] `repo.reset_file(path)` - Unstage specific file (already exists in files.rs)
104+
- [x] ResetMode enum with type-safe mode selection (Soft, Mixed, Hard)
105+
- [x] Complete error handling for invalid commits and references
106+
- [x] Comprehensive reset workflows with file-specific operations
107+
- [x] Cross-platform temporary directory handling for tests
108+
109+
## Phase 6: Release Management (Medium Priority)
110+
111+
### Archive & Export
112+
- [ ] `repo.archive(format, output_path)` - Create repository archive
113+
- [ ] `repo.export_commit(hash, path)` - Export specific commit
114+
115+
## Phase 7: Development Workflow (Medium Priority)
102116

103117
### Merge & Rebase
104118
- [ ] `repo.merge(branch)` / `repo.merge_commit(hash)` - Merge operations
@@ -107,7 +121,7 @@
107121
- [ ] Conflict resolution helpers and status
108122
- [ ] `repo.abort_merge()` / `repo.abort_rebase()` - Abort operations
109123

110-
## Phase 7: Advanced Configuration (Medium Priority)
124+
## Phase 8: Advanced Configuration (Medium Priority)
111125

112126
### Enhanced Configuration
113127
- [ ] `Config::global()` - Global git configuration
@@ -122,7 +136,7 @@
122136
- [ ] `repo.hooks().remove(hook_type)` - Remove hooks
123137
- [ ] Pre-built common hooks (pre-commit, pre-push, etc.)
124138

125-
## Phase 8: Repository Analysis (Low Priority)
139+
## Phase 9: Repository Analysis (Low Priority)
126140

127141
### History & Inspection
128142
- [ ] `repo.show(hash)` - Show commit with full diff
@@ -136,7 +150,7 @@
136150
- [ ] `repo.size_analysis()` - Large files, repository size analysis
137151
- [ ] `repo.gc()` / `repo.fsck()` - Maintenance operations
138152

139-
## Phase 9: Advanced Features (Low Priority)
153+
## Phase 10: Advanced Features (Low Priority)
140154

141155
### Worktree Support
142156
- [ ] `repo.worktree_add(path, branch)` - Add worktree

0 commit comments

Comments
 (0)