|
18 | 18 | - **Diff operations with multi-level API and comprehensive options** |
19 | 19 | - **Tag management with comprehensive operations and filtering** |
20 | 20 | - **Stash operations with comprehensive management and filtering** |
| 21 | +- **Reset operations with comprehensive reset modes and error handling** |
21 | 22 |
|
22 | 23 | ## ✅ Phase 1: Essential Remote Operations (COMPLETED) |
23 | 24 |
|
|
77 | 78 | - [x] Type-safe TagType enum (Lightweight, Annotated) |
78 | 79 | - [x] Complete tag metadata support (message, tagger, timestamp) |
79 | 80 |
|
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 | | - |
86 | 81 | ## ✅ Phase 4: Stash Operations (COMPLETED) |
87 | 82 |
|
88 | 83 | ### ✅ Stash Management |
|
98 | 93 | - [x] StashApplyOptions builder with restore_index, quiet options |
99 | 94 | - [x] Complete stash metadata support (index, message, hash, branch, timestamp) |
100 | 95 |
|
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) |
102 | 116 |
|
103 | 117 | ### Merge & Rebase |
104 | 118 | - [ ] `repo.merge(branch)` / `repo.merge_commit(hash)` - Merge operations |
|
107 | 121 | - [ ] Conflict resolution helpers and status |
108 | 122 | - [ ] `repo.abort_merge()` / `repo.abort_rebase()` - Abort operations |
109 | 123 |
|
110 | | -## Phase 7: Advanced Configuration (Medium Priority) |
| 124 | +## Phase 8: Advanced Configuration (Medium Priority) |
111 | 125 |
|
112 | 126 | ### Enhanced Configuration |
113 | 127 | - [ ] `Config::global()` - Global git configuration |
|
122 | 136 | - [ ] `repo.hooks().remove(hook_type)` - Remove hooks |
123 | 137 | - [ ] Pre-built common hooks (pre-commit, pre-push, etc.) |
124 | 138 |
|
125 | | -## Phase 8: Repository Analysis (Low Priority) |
| 139 | +## Phase 9: Repository Analysis (Low Priority) |
126 | 140 |
|
127 | 141 | ### History & Inspection |
128 | 142 | - [ ] `repo.show(hash)` - Show commit with full diff |
|
136 | 150 | - [ ] `repo.size_analysis()` - Large files, repository size analysis |
137 | 151 | - [ ] `repo.gc()` / `repo.fsck()` - Maintenance operations |
138 | 152 |
|
139 | | -## Phase 9: Advanced Features (Low Priority) |
| 153 | +## Phase 10: Advanced Features (Low Priority) |
140 | 154 |
|
141 | 155 | ### Worktree Support |
142 | 156 | - [ ] `repo.worktree_add(path, branch)` - Add worktree |
|
0 commit comments