[PR #370] [MERGED] Git branch flow improvements #648

Closed
opened 2026-04-16 15:20:50 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/mountain-loop/yaak/pull/370
Author: @gschier
Created: 1/26/2026
Status: Merged
Merged: 1/26/2026
Merged by: @gschier

Base: mainHead: port-branch-ops-to-git-binary


📝 Commits (8)

  • 8ac0d2e Port git branch operations to use git binary
  • 932ee40 Moved some git operations around
  • ca655af Branch renaming
  • d40d8d9 Enhance Git dropdown with branch operations and submenu improvements
  • 202141c Fix dropdown selection skipping hidden items on open
  • 1ebd7c1 Add git clone functionality with new workspace creation flow
  • cd1c432 Add credential prompts for git clone and improve workspace import
  • 1acd16d Move clone credential logic to git package for consistency

📊 Changes

20 files changed (+851 additions, -412 deletions)

View changed files

📝 crates-tauri/yaak-app/src/git_ext.rs (+31 -12)
📝 crates-tauri/yaak-app/src/lib.rs (+6 -0)
📝 crates/yaak-git/bindings/gen_git.ts (+4 -0)
📝 crates/yaak-git/index.ts (+39 -6)
📝 crates/yaak-git/src/binary.rs (+9 -3)
📝 crates/yaak-git/src/branch.rs (+118 -64)
crates/yaak-git/src/clone.rs (+53 -0)
📝 crates/yaak-git/src/credential.rs (+3 -9)
📝 crates/yaak-git/src/lib.rs (+7 -2)
crates/yaak-git/src/merge.rs (+0 -135)
📝 crates/yaak-git/src/util.rs (+0 -4)
src-web/components/CloneGitRepositoryDialog.tsx (+161 -0)
📝 src-web/components/WorkspaceActionsDropdown.tsx (+47 -22)
📝 src-web/components/core/Dropdown.tsx (+53 -11)
📝 src-web/components/git/GitDropdown.tsx (+251 -102)
📝 src-web/components/git/callbacks.tsx (+5 -37)
src-web/components/git/credentials.tsx (+50 -0)
📝 src-web/hooks/useFastMutation.ts (+11 -5)
📝 src-web/lib/appInfo.ts (+1 -0)
📝 src-web/lib/tauri.ts (+2 -0)

📄 Description

This PR adds cloning, ports git branch operations from libgit2 to use the git binary directly, and significantly enhances the Git dropdown with new features and UX improvements.

CleanShot 2026-01-26 at 08 32 01

Git Clone

It is now possible to clone a new repository into Yaak, instead of having to clone via CLI and open in Yaak.
CleanShot 2026-01-26 at 10 30 06

Git Operations

  • Ported to git binary: checkout, create branch, delete branch, merge, and rename operations now use the git CLI instead of libgit2
  • New operations:
    • Rename branch (git branch -m)
    • Delete remote branch (git push origin --delete)
    • Create branch from a specific base (git branch <name> <base>)

Git Dropdown Enhancements

  • Branch submenus: Local and remote branches now have submenus with contextual actions
  • Local branch actions: Checkout, Merge, New Branch, Rename, Delete
  • Remote branch actions: Checkout, Delete

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/mountain-loop/yaak/pull/370 **Author:** [@gschier](https://github.com/gschier) **Created:** 1/26/2026 **Status:** ✅ Merged **Merged:** 1/26/2026 **Merged by:** [@gschier](https://github.com/gschier) **Base:** `main` ← **Head:** `port-branch-ops-to-git-binary` --- ### 📝 Commits (8) - [`8ac0d2e`](https://github.com/mountain-loop/yaak/commit/8ac0d2e1db2a54dddae1c55165d1d762acfb7433) Port git branch operations to use git binary - [`932ee40`](https://github.com/mountain-loop/yaak/commit/932ee40b889540e1a119a3bbc9415e796574eaee) Moved some git operations around - [`ca655af`](https://github.com/mountain-loop/yaak/commit/ca655afd25cf2b0b6144f3d4a608813cfce19f8f) Branch renaming - [`d40d8d9`](https://github.com/mountain-loop/yaak/commit/d40d8d9b005af110ed4d15512c7d9ff4b0458a7b) Enhance Git dropdown with branch operations and submenu improvements - [`202141c`](https://github.com/mountain-loop/yaak/commit/202141c4ab1d4ba32c57ea461045b6aef84b229e) Fix dropdown selection skipping hidden items on open - [`1ebd7c1`](https://github.com/mountain-loop/yaak/commit/1ebd7c1a60f7ef874c294d64c62187938df0c17f) Add git clone functionality with new workspace creation flow - [`cd1c432`](https://github.com/mountain-loop/yaak/commit/cd1c432fc9787f9d62bb992f0cf5c0af88587ea5) Add credential prompts for git clone and improve workspace import - [`1acd16d`](https://github.com/mountain-loop/yaak/commit/1acd16d405289f6b06855ff6af34715ea453b02a) Move clone credential logic to git package for consistency ### 📊 Changes **20 files changed** (+851 additions, -412 deletions) <details> <summary>View changed files</summary> 📝 `crates-tauri/yaak-app/src/git_ext.rs` (+31 -12) 📝 `crates-tauri/yaak-app/src/lib.rs` (+6 -0) 📝 `crates/yaak-git/bindings/gen_git.ts` (+4 -0) 📝 `crates/yaak-git/index.ts` (+39 -6) 📝 `crates/yaak-git/src/binary.rs` (+9 -3) 📝 `crates/yaak-git/src/branch.rs` (+118 -64) ➕ `crates/yaak-git/src/clone.rs` (+53 -0) 📝 `crates/yaak-git/src/credential.rs` (+3 -9) 📝 `crates/yaak-git/src/lib.rs` (+7 -2) ➖ `crates/yaak-git/src/merge.rs` (+0 -135) 📝 `crates/yaak-git/src/util.rs` (+0 -4) ➕ `src-web/components/CloneGitRepositoryDialog.tsx` (+161 -0) 📝 `src-web/components/WorkspaceActionsDropdown.tsx` (+47 -22) 📝 `src-web/components/core/Dropdown.tsx` (+53 -11) 📝 `src-web/components/git/GitDropdown.tsx` (+251 -102) 📝 `src-web/components/git/callbacks.tsx` (+5 -37) ➕ `src-web/components/git/credentials.tsx` (+50 -0) 📝 `src-web/hooks/useFastMutation.ts` (+11 -5) 📝 `src-web/lib/appInfo.ts` (+1 -0) 📝 `src-web/lib/tauri.ts` (+2 -0) </details> ### 📄 Description This PR adds cloning, ports git branch operations from libgit2 to use the git binary directly, and significantly enhances the Git dropdown with new features and UX improvements. <img width="1592" height="782" alt="CleanShot 2026-01-26 at 08 32 01" src="https://github.com/user-attachments/assets/43aedfe3-57e3-415c-b70e-6e2d00a3378d" /> ### Git Clone It is now possible to clone a new repository into Yaak, instead of having to clone via CLI and open in Yaak. <img width="1700" height="1072" alt="CleanShot 2026-01-26 at 10 30 06" src="https://github.com/user-attachments/assets/73cf73c4-a312-42f9-bc41-2fde1b713476" /> ### Git Operations - **Ported to git binary**: checkout, create branch, delete branch, merge, and rename operations now use the git CLI instead of libgit2 - **New operations**: - Rename branch (`git branch -m`) - Delete remote branch (`git push origin --delete`) - Create branch from a specific base (`git branch <name> <base>`) ### Git Dropdown Enhancements - **Branch submenus**: Local and remote branches now have submenus with contextual actions - **Local branch actions**: Checkout, Merge, New Branch, Rename, Delete - **Remote branch actions**: Checkout, Delete --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-16 15:20:50 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/yaak#648