feat(git): add rebase workflow with UI state handling

This introduces Git rebase commands (start, continue, abort) and
exposes whether a rebase is currently in progress via the status
payload. The UI now blocks committing during an active rebase and
shows a dedicated rebase notice with continue/abort actions.

- Add tauri commands for rebase operations and status detection
- Update frontend to render rebase state and controls
- Adjust conflict/resolution messaging and related UI styling
This commit is contained in:
Christoph Brandau
2026-07-04 00:34:36 +02:00
parent 1d67312ee4
commit 3c4425a408
9 changed files with 273 additions and 18 deletions
+10
View File
@@ -49,6 +49,7 @@
isBusy: boolean;
onCheckout: (branch: GitBranchInfo) => void;
onMerge: (branch: GitBranchInfo) => void;
onRebase: (branch: GitBranchInfo) => void;
onCreateBranch: (branchName: string) => void | Promise<void>;
onRenameBranch: (branch: GitBranchInfo) => void | Promise<void>;
onDeleteBranch: (branch: GitBranchInfo) => void | Promise<void>;
@@ -62,6 +63,7 @@
isBusy = false,
onCheckout = () => {},
onMerge = () => {},
onRebase = () => {},
onCreateBranch = () => {},
onRenameBranch = () => {},
onDeleteBranch = () => {},
@@ -370,6 +372,10 @@
<GitMerge size={15} aria-hidden="true" />
Merge
</button>
<button class="btn-sm" type="button" onclick={() => onRebase(row.branch)} disabled={isBusy} title="Rebase current branch onto this branch">
<GitBranch size={15} aria-hidden="true" />
Rebase
</button>
</div>
{/if}
</article>
@@ -446,6 +452,10 @@
<GitMerge size={15} aria-hidden="true" />
Merge
</button>
<button class="btn-sm" type="button" onclick={() => onRebase(row.branch)} disabled={isBusy} title="Rebase current branch onto this branch">
<GitBranch size={15} aria-hidden="true" />
Rebase
</button>
</div>
{/if}
</article>