Skip to content

Implement core Git workflow commands: rebase, stash, worktree, cherry-pick/blame, smart search and UI updates#17

Merged
hoangsvit merged 2 commits into
mainfrom
codex/implement-missing-core-git-features
Jun 27, 2026
Merged

Implement core Git workflow commands: rebase, stash, worktree, cherry-pick/blame, smart search and UI updates#17
hoangsvit merged 2 commits into
mainfrom
codex/implement-missing-core-git-features

Conversation

@hoangsvit

Copy link
Copy Markdown
Member

Motivation

  • Fill missing core Git workflows required by a production Git GUI, including richer rebase UX (paused-state detection and interactive todo editing) and stash/worktree management.
  • Provide recoverability for in-progress operations by exposing abort/continue/skip commands for rebase and cherry-pick and expose blame for file history.
  • Surface these capabilities to the frontend with typed IPC services so the UI can offer interactive flows (draggable rebase todo, stash rename, stash list actions).
  • Keep the backend simple and cross-platform by using the existing CLI approach while adding a small git_checked_env helper for interactive rebase sequencing.

Description

  • Added rebase state detection and interactive rebase support in the backend with get_rebase_state and start_interactive_rebase in src-tauri/src/commands/rebase.rs, and implemented cross-platform sequence-editor script creation.
  • Added aborting cherry-pick and file blame commands in src-tauri/src/commands/history.rs to allow conflict recovery and blame views.
  • Implemented stash rename backend and exposed apply/pop/drop/rename in the UI by updating src-tauri/src/commands/stash.rs and src/components/stash/StashPanel.tsx.
  • Implemented worktree management (list_worktrees, create_worktree, remove_worktree) in src-tauri/src/commands/worktree.rs.
  • Added a fuzzy smart_search command in src-tauri/src/commands/search.rs for commits, branches and tracked files.
  • Added git_checked_env helper to src-tauri/src/services/git_service.rs to run git with custom environment variables (used for GIT_SEQUENCE_EDITOR).
  • Extended the serialized models and TypeScript types with RebaseState, RebaseTodoItem, BlameLine, WorktreeInfo, and SearchResult in src-tauri/src/models/git.rs and src/types/git.ts, and wired corresponding IPC methods in src/services/gitService.ts and src-tauri/src/lib.rs.
  • Updated the rebase UI to show paused state, continue/skip/abort controls, and a draggable interactive todo editor in src/components/rebase/RebasePanel.tsx.
  • Added unit tests for the conflict parser to exercise multi-block parsing and marker detection in src-tauri/src/services/conflict_parser.rs.
  • Documented changes in README.md.

Testing

  • Ran git diff --check and confirmed there are no whitespace/merge-check errors.
  • Ran npm run typecheck (tsc --noEmit) which succeeded with the updated TypeScript types.
  • Built the frontend with npm run build (Vite) which completed successfully.
  • Attempted npm run tauri:check (cargo check) but the Rust build was blocked by the container missing the system glib-2.0 pkg-config dependency required by glib-sys, so full Rust verification could not complete in this environment.
  • Ran cargo fmt and added a small set of unit tests for the conflict parser (compiled as part of Rust test suite where system deps allow).

Codex Task

@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@github-actions

Copy link
Copy Markdown

GitPilot build artifacts are ready

One CI workflow run built all 3 desktop apps: open workflow run.

Download links:

@hoangsvit hoangsvit merged commit 5c28d95 into main Jun 27, 2026
5 checks passed
@hoangsvit hoangsvit deleted the codex/implement-missing-core-git-features branch June 27, 2026 17:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant