Added option to delete remote branch from log

This commit is contained in:
Abdelilah El Aissaoui 2022-06-11 23:54:43 +02:00
parent 27d28cfdce
commit d79095533d
3 changed files with 21 additions and 1 deletions

View File

@ -16,6 +16,7 @@ fun branchContextMenuItems(
onMergeBranch: () -> Unit,
onRebaseBranch: () -> Unit,
onDeleteBranch: () -> Unit,
onDeleteRemoteBranch: () -> Unit = {},
onPushToRemoteBranch: () -> Unit,
onPullFromRemoteBranch: () -> Unit,
): List<ContextMenuItem> {
@ -27,7 +28,7 @@ fun branchContextMenuItems(
onClick = onCheckoutBranch
)
)
if(currentBranch != null && !currentBranch.isHead) {
if (currentBranch != null && !currentBranch.isHead) {
add(
ContextMenuItem(
label = "Merge branch",
@ -64,5 +65,13 @@ fun branchContextMenuItems(
)
)
}
if (!isLocal) {
add(
ContextMenuItem(
label = "Delete remote branch",
onClick = onDeleteRemoteBranch
),
)
}
}
}

View File

@ -742,6 +742,7 @@ fun CommitLine(
onCheckoutRef = { ref -> logViewModel.checkoutRef(ref) },
onMergeBranch = { ref -> onMergeBranch(ref) },
onDeleteBranch = { ref -> logViewModel.deleteBranch(ref) },
onDeleteRemoteBranch = { ref -> logViewModel.deleteRemoteBranch(ref) },
onDeleteTag = { ref -> logViewModel.deleteTag(ref) },
onRebaseBranch = { ref -> onRebaseBranch(ref) },
onPushRemoteBranch = { ref -> logViewModel.pushToRemoteBranch(ref) },
@ -762,6 +763,7 @@ fun CommitMessage(
onCheckoutRef: (ref: Ref) -> Unit,
onMergeBranch: (ref: Ref) -> Unit,
onDeleteBranch: (ref: Ref) -> Unit,
onDeleteRemoteBranch: (ref: Ref) -> Unit,
onRebaseBranch: (ref: Ref) -> Unit,
onDeleteTag: (ref: Ref) -> Unit,
onPushRemoteBranch: (ref: Ref) -> Unit,
@ -797,6 +799,7 @@ fun CommitMessage(
onCheckoutBranch = { onCheckoutRef(ref) },
onMergeBranch = { onMergeBranch(ref) },
onDeleteBranch = { onDeleteBranch(ref) },
onDeleteRemoteBranch = { onDeleteRemoteBranch(ref) },
onRebaseBranch = { onRebaseBranch(ref) },
onPullRemoteBranch = { onPullRemoteBranch(ref) },
onPushRemoteBranch = { onPushRemoteBranch(ref) },
@ -991,6 +994,7 @@ fun BranchChip(
onCheckoutBranch: () -> Unit,
onMergeBranch: () -> Unit,
onDeleteBranch: () -> Unit,
onDeleteRemoteBranch: () -> Unit,
onRebaseBranch: () -> Unit,
onPushRemoteBranch: () -> Unit,
onPullRemoteBranch: () -> Unit,
@ -1005,6 +1009,7 @@ fun BranchChip(
onCheckoutBranch = onCheckoutBranch,
onMergeBranch = onMergeBranch,
onDeleteBranch = onDeleteBranch,
onDeleteRemoteBranch = onDeleteRemoteBranch,
onRebaseBranch = onRebaseBranch,
onPushToRemoteBranch = onPushRemoteBranch,
onPullFromRemoteBranch = onPullRemoteBranch,

View File

@ -355,6 +355,12 @@ class LogViewModel @Inject constructor(
) {
tabState.emitNewTaskEvent(TaskEvent.RebaseInteractive(revCommit))
}
fun deleteRemoteBranch(branch: Ref) = tabState.safeProcessing(
refreshType = RefreshType.ALL_DATA,
) { git ->
remoteOperationsManager.deleteBranch(git, branch)
}
}
sealed class LogStatus {