From 08fb508736557cf4ad3ef4903dc5e3e0c9769422 Mon Sep 17 00:00:00 2001 From: xintaofei Date: Tue, 21 Apr 2026 23:14:57 +0800 Subject: [PATCH] refactor(branch-picker): fix popover corner radius, remove local branch delete, move new-branch to top --- src-tauri/src/commands/folders.rs | 20 ---- src-tauri/src/lib.rs | 1 - src-tauri/src/web/handlers/git.rs | 16 --- src-tauri/src/web/router.rs | 1 - .../chat/conversation-context-bar.tsx | 109 +++++++----------- src/i18n/messages/ar.json | 6 - src/i18n/messages/de.json | 6 - src/i18n/messages/en.json | 6 - src/i18n/messages/es.json | 6 - src/i18n/messages/fr.json | 6 - src/i18n/messages/ja.json | 6 - src/i18n/messages/ko.json | 6 - src/i18n/messages/pt.json | 6 - src/i18n/messages/zh-CN.json | 6 - src/i18n/messages/zh-TW.json | 6 - src/lib/api.ts | 8 -- src/lib/tauri.ts | 8 -- 17 files changed, 40 insertions(+), 183 deletions(-) diff --git a/src-tauri/src/commands/folders.rs b/src-tauri/src/commands/folders.rs index 9e644c3..417561e 100644 --- a/src-tauri/src/commands/folders.rs +++ b/src-tauri/src/commands/folders.rs @@ -2120,26 +2120,6 @@ pub async fn git_rebase( }) } -#[cfg_attr(feature = "tauri-runtime", tauri::command)] -pub async fn git_delete_branch( - path: String, - branch_name: String, - force: bool, -) -> Result { - let flag = if force { "-D" } else { "-d" }; - let output = crate::process::tokio_command("git") - .args(["branch", flag, &branch_name]) - .current_dir(&path) - .output() - .await - .map_err(AppCommandError::io)?; - - if !output.status.success() { - return Err(git_command_error(&format!("branch {flag}"), &output.stderr)); - } - Ok(String::from_utf8_lossy(&output.stdout).trim().to_string()) -} - pub(crate) async fn git_delete_remote_branch_core( path: &str, remote: &str, diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 45117f7..211e38c 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -264,7 +264,6 @@ mod tauri_app { folders::git_set_remote_url, folders::git_merge, folders::git_rebase, - folders::git_delete_branch, folders::git_delete_remote_branch, folders::git_list_conflicts, folders::git_conflict_file_versions, diff --git a/src-tauri/src/web/handlers/git.rs b/src-tauri/src/web/handlers/git.rs index 533e249..889880b 100644 --- a/src-tauri/src/web/handlers/git.rs +++ b/src-tauri/src/web/handlers/git.rs @@ -450,22 +450,6 @@ pub async fn git_rebase( Ok(Json(result)) } -#[derive(Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct GitDeleteBranchParams { - pub path: String, - pub branch_name: String, - pub force: bool, -} - -pub async fn git_delete_branch( - Json(params): Json, -) -> Result, AppCommandError> { - folder_commands::git_delete_branch(params.path, params.branch_name, params.force) - .await?; - Ok(Json(())) -} - #[derive(Deserialize)] #[serde(rename_all = "camelCase")] pub struct GitDeleteRemoteBranchParams { diff --git a/src-tauri/src/web/router.rs b/src-tauri/src/web/router.rs index 3de92aa..b0d3574 100644 --- a/src-tauri/src/web/router.rs +++ b/src-tauri/src/web/router.rs @@ -195,7 +195,6 @@ pub fn build_router(state: Arc, token: String, static_dir: std::path:: .route("/git_new_branch", post(handlers::git::git_new_branch)) .route("/git_checkout", post(handlers::git::git_checkout)) .route("/git_reset", post(handlers::git::git_reset)) - .route("/git_delete_branch", post(handlers::git::git_delete_branch)) .route("/git_merge", post(handlers::git::git_merge)) .route("/git_rebase", post(handlers::git::git_rebase)) .route("/git_worktree_add", post(handlers::git::git_worktree_add)) diff --git a/src/components/chat/conversation-context-bar.tsx b/src/components/chat/conversation-context-bar.tsx index 839cc7a..e7cf48c 100644 --- a/src/components/chat/conversation-context-bar.tsx +++ b/src/components/chat/conversation-context-bar.tsx @@ -11,17 +11,11 @@ import { GitBranch, Loader2, Plus, - Trash2, } from "lucide-react" import { useAppWorkspace } from "@/contexts/app-workspace-context" import { useTabContext } from "@/contexts/tab-context" import { useTaskContext } from "@/contexts/task-context" -import { - gitListAllBranches, - gitCheckout, - gitNewBranch, - gitDeleteBranch, -} from "@/lib/api" +import { gitListAllBranches, gitCheckout, gitNewBranch } from "@/lib/api" import { isDesktop, openFileDialog } from "@/lib/platform" import type { GitBranchList } from "@/lib/types" import { Button } from "@/components/ui/button" @@ -178,19 +172,6 @@ export const ConversationContextBar = memo(function ConversationContextBar({ toast.error(msg) } }} - onDeleteBranch={async (branchName) => { - const taskId = `delete-branch-${ownFolder.id}-${Date.now()}` - addTask(taskId, tBd("tasks.deleteBranch", { branchName })) - updateTask(taskId, { status: "running" }) - try { - await gitDeleteBranch(ownFolder.path, branchName, false) - updateTask(taskId, { status: "completed" }) - } catch (err) { - const msg = err instanceof Error ? err.message : String(err) - updateTask(taskId, { status: "failed", error: msg }) - toast.error(msg) - } - }} /> @@ -312,7 +293,6 @@ interface BranchPickerProps { currentBranch: string | null onCheckout: (branchName: string) => Promise onNewBranch: (branchName: string, startPoint?: string) => Promise - onDeleteBranch: (branchName: string) => Promise } const BranchPicker = memo(function BranchPicker({ @@ -321,7 +301,6 @@ const BranchPicker = memo(function BranchPicker({ currentBranch, onCheckout, onNewBranch, - onDeleteBranch, }: BranchPickerProps) { const t = useTranslations("Folder.conversationContextBar") const tBd = useTranslations("Folder.branchDropdown") @@ -369,8 +348,8 @@ const BranchPicker = memo(function BranchPicker({ - - + + {loading ? ( @@ -380,39 +359,44 @@ const BranchPicker = memo(function BranchPicker({ ) : ( <> {t("noBranches")} - {branchList && branchList.local.length > 0 && ( - + { + setOpen(false) + setNewBranchName("") + setNewBranchOpen(true) + }} > - {branchList.local.map((b) => ( - { - setOpen(false) - if (b !== currentBranch) void onCheckout(b) - }} - > - - {b} - {b === currentBranch && ( - - )} - {b !== currentBranch && ( - { - e.stopPropagation() - setOpen(false) - void onDeleteBranch(b) - }} - /> - )} - - ))} - + + {tBd("newBranch")} + + + {branchList && branchList.local.length > 0 && ( + <> + + + {branchList.local.map((b) => ( + { + setOpen(false) + if (b !== currentBranch) void onCheckout(b) + }} + > + + {b} + {b === currentBranch && ( + + )} + + ))} + + )} {branchList && branchList.remote.length > 0 && ( )} - - - { - setOpen(false) - setNewBranchName("") - setNewBranchOpen(true) - }} - > - - {tBd("newBranch")} - - )} diff --git a/src/i18n/messages/ar.json b/src/i18n/messages/ar.json index 9fd058b..e62b9b7 100644 --- a/src/i18n/messages/ar.json +++ b/src/i18n/messages/ar.json @@ -1015,7 +1015,6 @@ "checkoutTo": "Checkout إلى {branchName}", "mergeBranch": "دمج {branchName}", "rebaseTo": "Rebase إلى {branchName}", - "deleteBranch": "حذف الفرع {branchName}", "deleteRemoteBranch": "حذف الفرع البعيد {branchName}", "initGitRepo": "تهيئة مستودع Git", "pullCode": "سحب الكود", @@ -1027,12 +1026,8 @@ "confirm": { "mergeTitle": "دمج الفرع", "rebaseTitle": "Rebase للفرع", - "deleteTitle": "حذف الفرع", "mergeDescription": "دمج {branchName} في الفرع الحالي {currentBranch}؟", "rebaseDescription": "إجراء rebase للفرع الحالي {currentBranch} على {branchName}؟", - "deleteDescription": "حذف الفرع {branchName}؟ لا يمكن التراجع عن هذا الإجراء.", - "forceDeleteTitle": "حذف الفرع بالقوة", - "forceDeleteDescription": "الفرع {branchName} لم يتم دمجه بالكامل. هل أنت متأكد من أنك تريد حذفه بالقوة؟ لا يمكن التراجع عن هذا الإجراء.", "deleteRemoteTitle": "حذف الفرع البعيد", "deleteRemoteDescription": "هل تريد حذف الفرع البعيد {branchName}؟ سيؤدي ذلك إلى إزالته من المستودع البعيد ولا يمكن التراجع عن هذا الإجراء." }, @@ -1040,7 +1035,6 @@ "switchToBranch": "التبديل إلى هذا الفرع", "mergeBranchIntoCurrent": "دمج {branchName} في {currentBranch}", "rebaseCurrentToBranch": "Rebase لـ {currentBranch} على {branchName}", - "deleteBranch": "حذف الفرع", "versionControl": "التحكم في الإصدارات", "initGitRepo": "تهيئة مستودع Git", "pullCode": "سحب الكود", diff --git a/src/i18n/messages/de.json b/src/i18n/messages/de.json index a1c7901..f3333d0 100644 --- a/src/i18n/messages/de.json +++ b/src/i18n/messages/de.json @@ -1015,7 +1015,6 @@ "checkoutTo": "Zu {branchName} wechseln", "mergeBranch": "{branchName} mergen", "rebaseTo": "Auf {branchName} rebasen", - "deleteBranch": "Branch {branchName} löschen", "deleteRemoteBranch": "Remote-Branch {branchName} löschen", "initGitRepo": "Git-Repository initialisieren", "pullCode": "Code pullen", @@ -1027,12 +1026,8 @@ "confirm": { "mergeTitle": "Branch mergen", "rebaseTitle": "Branch rebasen", - "deleteTitle": "Branch löschen", "mergeDescription": "{branchName} in den aktuellen Branch {currentBranch} mergen?", "rebaseDescription": "Aktuellen Branch {currentBranch} auf {branchName} rebasen?", - "deleteDescription": "Branch {branchName} löschen? Diese Aktion kann nicht rückgängig gemacht werden.", - "forceDeleteTitle": "Branch erzwungen löschen", - "forceDeleteDescription": "Der Branch {branchName} ist nicht vollständig gemergt. Möchten Sie ihn wirklich erzwungen löschen? Diese Aktion kann nicht rückgängig gemacht werden.", "deleteRemoteTitle": "Remote-Branch löschen", "deleteRemoteDescription": "Remote-Branch {branchName} löschen? Dies entfernt ihn aus dem Remote-Repository und kann nicht rückgängig gemacht werden." }, @@ -1040,7 +1035,6 @@ "switchToBranch": "Zu diesem Branch wechseln", "mergeBranchIntoCurrent": "{branchName} in {currentBranch} mergen", "rebaseCurrentToBranch": "{currentBranch} auf {branchName} rebasen", - "deleteBranch": "Branch löschen", "versionControl": "Versionskontrolle", "initGitRepo": "Git-Repository initialisieren", "pullCode": "Code pullen", diff --git a/src/i18n/messages/en.json b/src/i18n/messages/en.json index ae9bb60..f4416df 100644 --- a/src/i18n/messages/en.json +++ b/src/i18n/messages/en.json @@ -1015,7 +1015,6 @@ "checkoutTo": "Checkout to {branchName}", "mergeBranch": "Merge {branchName}", "rebaseTo": "Rebase to {branchName}", - "deleteBranch": "Delete branch {branchName}", "deleteRemoteBranch": "Delete remote branch {branchName}", "initGitRepo": "Initialize Git repository", "pullCode": "Pull code", @@ -1027,12 +1026,8 @@ "confirm": { "mergeTitle": "Merge branch", "rebaseTitle": "Rebase branch", - "deleteTitle": "Delete branch", "mergeDescription": "Merge {branchName} into current branch {currentBranch}?", "rebaseDescription": "Rebase current branch {currentBranch} onto {branchName}?", - "deleteDescription": "Delete branch {branchName}? This action cannot be undone.", - "forceDeleteTitle": "Force Delete Branch", - "forceDeleteDescription": "Branch {branchName} is not fully merged. Are you sure you want to force delete it? This action cannot be undone.", "deleteRemoteTitle": "Delete Remote Branch", "deleteRemoteDescription": "Delete remote branch {branchName}? This will remove it from the remote repository and cannot be undone." }, @@ -1040,7 +1035,6 @@ "switchToBranch": "Switch to this branch", "mergeBranchIntoCurrent": "Merge {branchName} into {currentBranch}", "rebaseCurrentToBranch": "Rebase {currentBranch} onto {branchName}", - "deleteBranch": "Delete branch", "versionControl": "Version Control", "initGitRepo": "Initialize Git repository", "pullCode": "Pull code", diff --git a/src/i18n/messages/es.json b/src/i18n/messages/es.json index f41a6a7..94d83a8 100644 --- a/src/i18n/messages/es.json +++ b/src/i18n/messages/es.json @@ -1015,7 +1015,6 @@ "checkoutTo": "Cambiar a {branchName}", "mergeBranch": "Fusionar {branchName}", "rebaseTo": "Rebase a {branchName}", - "deleteBranch": "Eliminar rama {branchName}", "deleteRemoteBranch": "Eliminar rama remota {branchName}", "initGitRepo": "Inicializar repositorio Git", "pullCode": "Hacer pull del código", @@ -1027,12 +1026,8 @@ "confirm": { "mergeTitle": "Fusionar rama", "rebaseTitle": "Rebase de rama", - "deleteTitle": "Eliminar rama", "mergeDescription": "¿Fusionar {branchName} en la rama actual {currentBranch}?", "rebaseDescription": "¿Hacer rebase de la rama actual {currentBranch} sobre {branchName}?", - "deleteDescription": "¿Eliminar la rama {branchName}? Esta acción no se puede deshacer.", - "forceDeleteTitle": "Forzar eliminación de rama", - "forceDeleteDescription": "La rama {branchName} no está completamente fusionada. ¿Estás seguro de que quieres forzar su eliminación? Esta acción no se puede deshacer.", "deleteRemoteTitle": "Eliminar rama remota", "deleteRemoteDescription": "¿Eliminar la rama remota {branchName}? Esto la eliminará del repositorio remoto y no se puede deshacer." }, @@ -1040,7 +1035,6 @@ "switchToBranch": "Cambiar a esta rama", "mergeBranchIntoCurrent": "Fusionar {branchName} en {currentBranch}", "rebaseCurrentToBranch": "Rebase de {currentBranch} sobre {branchName}", - "deleteBranch": "Eliminar rama", "versionControl": "Control de versiones", "initGitRepo": "Inicializar repositorio Git", "pullCode": "Hacer pull del código", diff --git a/src/i18n/messages/fr.json b/src/i18n/messages/fr.json index 854edbc..3cb7d51 100644 --- a/src/i18n/messages/fr.json +++ b/src/i18n/messages/fr.json @@ -1015,7 +1015,6 @@ "checkoutTo": "Basculer vers {branchName}", "mergeBranch": "Fusionner {branchName}", "rebaseTo": "Rebase vers {branchName}", - "deleteBranch": "Supprimer la branche {branchName}", "deleteRemoteBranch": "Supprimer la branche distante {branchName}", "initGitRepo": "Initialiser le dépôt Git", "pullCode": "Pull du code", @@ -1027,12 +1026,8 @@ "confirm": { "mergeTitle": "Fusionner la branche", "rebaseTitle": "Rebase de la branche", - "deleteTitle": "Supprimer la branche", "mergeDescription": "Fusionner {branchName} dans la branche actuelle {currentBranch} ?", "rebaseDescription": "Rebaser la branche actuelle {currentBranch} sur {branchName} ?", - "deleteDescription": "Supprimer la branche {branchName} ? Cette action est irréversible.", - "forceDeleteTitle": "Forcer la suppression de la branche", - "forceDeleteDescription": "La branche {branchName} n'est pas entièrement fusionnée. Êtes-vous sûr de vouloir la supprimer de force ? Cette action est irréversible.", "deleteRemoteTitle": "Supprimer la branche distante", "deleteRemoteDescription": "Supprimer la branche distante {branchName} ? Cette action la supprimera du dépôt distant et ne pourra pas être annulée." }, @@ -1040,7 +1035,6 @@ "switchToBranch": "Basculer vers cette branche", "mergeBranchIntoCurrent": "Fusionner {branchName} dans {currentBranch}", "rebaseCurrentToBranch": "Rebaser {currentBranch} sur {branchName}", - "deleteBranch": "Supprimer la branche", "versionControl": "Contrôle de version", "initGitRepo": "Initialiser le dépôt Git", "pullCode": "Pull du code", diff --git a/src/i18n/messages/ja.json b/src/i18n/messages/ja.json index 4d273a0..fc45cd8 100644 --- a/src/i18n/messages/ja.json +++ b/src/i18n/messages/ja.json @@ -1015,7 +1015,6 @@ "checkoutTo": "{branchName} にチェックアウト", "mergeBranch": "{branchName} をマージ", "rebaseTo": "{branchName} にリベース", - "deleteBranch": "ブランチ {branchName} を削除", "deleteRemoteBranch": "リモートブランチ {branchName} を削除", "initGitRepo": "Git リポジトリを初期化", "pullCode": "コードをプル", @@ -1027,12 +1026,8 @@ "confirm": { "mergeTitle": "ブランチをマージ", "rebaseTitle": "ブランチをリベース", - "deleteTitle": "ブランチを削除", "mergeDescription": "{branchName} を現在のブランチ {currentBranch} にマージしますか?", "rebaseDescription": "現在のブランチ {currentBranch} を {branchName} にリベースしますか?", - "deleteDescription": "ブランチ {branchName} を削除しますか?この操作は元に戻せません。", - "forceDeleteTitle": "ブランチを強制削除", - "forceDeleteDescription": "ブランチ {branchName} はまだ完全にマージされていません。強制削除してもよろしいですか?この操作は元に戻せません。", "deleteRemoteTitle": "リモートブランチの削除", "deleteRemoteDescription": "リモートブランチ {branchName} を削除しますか?この操作はリモートリポジトリからブランチを削除し、元に戻せません。" }, @@ -1040,7 +1035,6 @@ "switchToBranch": "このブランチに切り替え", "mergeBranchIntoCurrent": "{branchName} を {currentBranch} にマージ", "rebaseCurrentToBranch": "{currentBranch} を {branchName} にリベース", - "deleteBranch": "ブランチを削除", "versionControl": "バージョン管理", "initGitRepo": "Git リポジトリを初期化", "pullCode": "コードをプル", diff --git a/src/i18n/messages/ko.json b/src/i18n/messages/ko.json index 9c8444f..f32d8df 100644 --- a/src/i18n/messages/ko.json +++ b/src/i18n/messages/ko.json @@ -1015,7 +1015,6 @@ "checkoutTo": "{branchName}(으)로 체크아웃", "mergeBranch": "{branchName} 병합", "rebaseTo": "{branchName}로 리베이스", - "deleteBranch": "브랜치 {branchName} 삭제", "deleteRemoteBranch": "원격 브랜치 {branchName} 삭제", "initGitRepo": "Git 저장소 초기화", "pullCode": "코드 pull", @@ -1027,12 +1026,8 @@ "confirm": { "mergeTitle": "브랜치 병합", "rebaseTitle": "브랜치 리베이스", - "deleteTitle": "브랜치 삭제", "mergeDescription": "{branchName}을(를) 현재 브랜치 {currentBranch}에 병합할까요?", "rebaseDescription": "현재 브랜치 {currentBranch}를 {branchName} 위로 리베이스할까요?", - "deleteDescription": "브랜치 {branchName}을(를) 삭제할까요? 이 작업은 되돌릴 수 없습니다.", - "forceDeleteTitle": "브랜치 강제 삭제", - "forceDeleteDescription": "브랜치 {branchName}가 완전히 병합되지 않았습니다. 강제 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.", "deleteRemoteTitle": "원격 브랜치 삭제", "deleteRemoteDescription": "원격 브랜치 {branchName}을(를) 삭제하시겠습니까? 이 작업은 원격 저장소에서 브랜치를 제거하며 되돌릴 수 없습니다." }, @@ -1040,7 +1035,6 @@ "switchToBranch": "이 브랜치로 전환", "mergeBranchIntoCurrent": "{branchName}을(를) {currentBranch}에 병합", "rebaseCurrentToBranch": "{currentBranch}를 {branchName}로 리베이스", - "deleteBranch": "브랜치 삭제", "versionControl": "버전 관리", "initGitRepo": "Git 저장소 초기화", "pullCode": "코드 pull", diff --git a/src/i18n/messages/pt.json b/src/i18n/messages/pt.json index ad37918..ba50062 100644 --- a/src/i18n/messages/pt.json +++ b/src/i18n/messages/pt.json @@ -1015,7 +1015,6 @@ "checkoutTo": "Fazer checkout para {branchName}", "mergeBranch": "Mesclar {branchName}", "rebaseTo": "Rebase para {branchName}", - "deleteBranch": "Excluir branch {branchName}", "deleteRemoteBranch": "Excluir branch remoto {branchName}", "initGitRepo": "Inicializar repositório Git", "pullCode": "Fazer pull do código", @@ -1027,12 +1026,8 @@ "confirm": { "mergeTitle": "Mesclar branch", "rebaseTitle": "Rebase da branch", - "deleteTitle": "Excluir branch", "mergeDescription": "Mesclar {branchName} na branch atual {currentBranch}?", "rebaseDescription": "Fazer rebase da branch atual {currentBranch} sobre {branchName}?", - "deleteDescription": "Excluir a branch {branchName}? Esta ação não pode ser desfeita.", - "forceDeleteTitle": "Forçar exclusão do branch", - "forceDeleteDescription": "O branch {branchName} não está totalmente mesclado. Tem certeza de que deseja forçar a exclusão? Esta ação não pode ser desfeita.", "deleteRemoteTitle": "Excluir branch remoto", "deleteRemoteDescription": "Excluir o branch remoto {branchName}? Isso o removerá do repositório remoto e não poderá ser desfeito." }, @@ -1040,7 +1035,6 @@ "switchToBranch": "Mudar para esta branch", "mergeBranchIntoCurrent": "Mesclar {branchName} em {currentBranch}", "rebaseCurrentToBranch": "Rebase de {currentBranch} sobre {branchName}", - "deleteBranch": "Excluir branch", "versionControl": "Controle de versão", "initGitRepo": "Inicializar repositório Git", "pullCode": "Fazer pull do código", diff --git a/src/i18n/messages/zh-CN.json b/src/i18n/messages/zh-CN.json index fd2a531..b1ce53e 100644 --- a/src/i18n/messages/zh-CN.json +++ b/src/i18n/messages/zh-CN.json @@ -1015,7 +1015,6 @@ "checkoutTo": "切换到 {branchName}", "mergeBranch": "合并 {branchName}", "rebaseTo": "变基到 {branchName}", - "deleteBranch": "删除分支 {branchName}", "deleteRemoteBranch": "删除远程分支 {branchName}", "initGitRepo": "初始化 Git 仓库", "pullCode": "更新代码", @@ -1027,12 +1026,8 @@ "confirm": { "mergeTitle": "合并分支", "rebaseTitle": "变基分支", - "deleteTitle": "删除分支", "mergeDescription": "确定将 {branchName} 合并到当前分支 {currentBranch} 吗?", "rebaseDescription": "确定将当前分支 {currentBranch} 变基到 {branchName} 吗?", - "deleteDescription": "确定删除分支 {branchName} 吗?此操作不可恢复。", - "forceDeleteTitle": "强制删除分支", - "forceDeleteDescription": "分支 {branchName} 尚未完全合并,确定要强制删除吗?此操作不可恢复。", "deleteRemoteTitle": "删除远程分支", "deleteRemoteDescription": "确定删除远程分支 {branchName} 吗?此操作将从远程仓库中移除该分支,且不可恢复。" }, @@ -1040,7 +1035,6 @@ "switchToBranch": "切换到此分支", "mergeBranchIntoCurrent": "将 {branchName} 合并到 {currentBranch}", "rebaseCurrentToBranch": "将 {currentBranch} 变基到 {branchName}", - "deleteBranch": "删除分支", "versionControl": "版本控制", "initGitRepo": "初始化 Git 仓库", "pullCode": "更新代码", diff --git a/src/i18n/messages/zh-TW.json b/src/i18n/messages/zh-TW.json index d4b3e11..cba4a96 100644 --- a/src/i18n/messages/zh-TW.json +++ b/src/i18n/messages/zh-TW.json @@ -1015,7 +1015,6 @@ "checkoutTo": "切換到 {branchName}", "mergeBranch": "合併 {branchName}", "rebaseTo": "變基到 {branchName}", - "deleteBranch": "刪除分支 {branchName}", "deleteRemoteBranch": "刪除遠端分支 {branchName}", "initGitRepo": "初始化 Git 倉庫", "pullCode": "更新程式碼", @@ -1027,12 +1026,8 @@ "confirm": { "mergeTitle": "合併分支", "rebaseTitle": "變基分支", - "deleteTitle": "刪除分支", "mergeDescription": "確定將 {branchName} 合併到目前分支 {currentBranch} 嗎?", "rebaseDescription": "確定將目前分支 {currentBranch} 變基到 {branchName} 嗎?", - "deleteDescription": "確定刪除分支 {branchName} 嗎?此操作無法復原。", - "forceDeleteTitle": "強制刪除分支", - "forceDeleteDescription": "分支 {branchName} 尚未完全合併,確定要強制刪除嗎?此操作不可恢復。", "deleteRemoteTitle": "刪除遠端分支", "deleteRemoteDescription": "確定刪除遠端分支 {branchName} 嗎?此操作將從遠端倉庫中移除該分支,且不可恢復。" }, @@ -1040,7 +1035,6 @@ "switchToBranch": "切換到此分支", "mergeBranchIntoCurrent": "將 {branchName} 合併到 {currentBranch}", "rebaseCurrentToBranch": "將 {currentBranch} 變基到 {branchName}", - "deleteBranch": "刪除分支", "versionControl": "版本控制", "initGitRepo": "初始化 Git 倉庫", "pullCode": "更新程式碼", diff --git a/src/lib/api.ts b/src/lib/api.ts index 3513ea7..f67c2c6 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -792,14 +792,6 @@ export async function gitRebase( return getTransport().call("git_rebase", { path, branchName }) } -export async function gitDeleteBranch( - path: string, - branchName: string, - force = false -): Promise { - return getTransport().call("git_delete_branch", { path, branchName, force }) -} - export async function gitDeleteRemoteBranch( path: string, remote: string, diff --git a/src/lib/tauri.ts b/src/lib/tauri.ts index ee9cddf..f36407f 100644 --- a/src/lib/tauri.ts +++ b/src/lib/tauri.ts @@ -648,14 +648,6 @@ export async function gitRebase( return invoke("git_rebase", { path, branchName }) } -export async function gitDeleteBranch( - path: string, - branchName: string, - force = false -): Promise { - return invoke("git_delete_branch", { path, branchName, force }) -} - export async function gitListConflicts(path: string): Promise { return invoke("git_list_conflicts", { path }) }