diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/git/TabState.kt b/src/main/kotlin/com/jetpackduba/gitnuro/git/TabState.kt index 5d33b5bc..36786740 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/git/TabState.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/git/TabState.kt @@ -77,7 +77,7 @@ class TabState @Inject constructor( title: String = "", subtitle: String = "", taskType: TaskType, - positiveFeedbackText: String? = null, + positiveFeedbackText: String?, // TODO For now have it always as false because the data refresh is cancelled even when the git process couldn't be cancelled isCancellable: Boolean = false, refreshEvenIfCrashes: Boolean = false, diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/HistoryViewModel.kt b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/HistoryViewModel.kt index 4b2e81ab..7d383850 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/HistoryViewModel.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/HistoryViewModel.kt @@ -80,6 +80,7 @@ class HistoryViewModel @Inject constructor( title = "History", subtitle = "Loading file history", taskType = TaskType.HISTORY_FILE, + positiveFeedbackText = null, ) { git -> this@HistoryViewModel.filePath = filePath _historyState.value = HistoryState.Loading(filePath) diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/LogViewModel.kt b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/LogViewModel.kt index 26ec8a92..f04c2132 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/LogViewModel.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/LogViewModel.kt @@ -163,6 +163,7 @@ class LogViewModel @Inject constructor( title = "Commit checkout", subtitle = "Checking out commit ${revCommit.name}", taskType = TaskType.CHECKOUT_COMMIT, + positiveFeedbackText = "Commit checked out", ) { git -> checkoutCommitUseCase(git, revCommit) } @@ -173,6 +174,7 @@ class LogViewModel @Inject constructor( subtitle = "Reverting commit ${revCommit.name}", refreshEvenIfCrashes = true, taskType = TaskType.REVERT_COMMIT, + positiveFeedbackText = "Commit reverted", ) { git -> revertCommitUseCase(git, revCommit) } @@ -182,6 +184,7 @@ class LogViewModel @Inject constructor( title = "Branch reset", subtitle = "Resetting branch to commit ${revCommit.shortName}", taskType = TaskType.RESET_TO_COMMIT, + positiveFeedbackText = "Reset completed", ) { git -> resetToCommitUseCase(git, revCommit, resetType = resetType) } @@ -192,6 +195,7 @@ class LogViewModel @Inject constructor( subtitle = "Cherry-picking commit ${revCommit.shortName}", taskType = TaskType.CHERRY_PICK_COMMIT, refreshEvenIfCrashes = true, + positiveFeedbackText = "Commit cherry-picked" ) { git -> cherryPickCommitUseCase(git, revCommit) } @@ -202,6 +206,7 @@ class LogViewModel @Inject constructor( subtitle = "Creating new branch \"$branch\" on commit ${revCommit.shortName}", refreshEvenIfCrashesInteractive = { it is CheckoutConflictException }, taskType = TaskType.CREATE_BRANCH, + positiveFeedbackText = "Branch \"$branch\" created", ) { git -> createBranchOnCommitUseCase(git, branch, revCommit) } @@ -211,6 +216,7 @@ class LogViewModel @Inject constructor( title = "New tag", subtitle = "Creating new tag \"$tag\" on commit ${revCommit.shortName}", taskType = TaskType.CREATE_TAG, + positiveFeedbackText = "Tag created", ) { git -> createTagOnCommitUseCase(git, tag, revCommit) } @@ -369,6 +375,7 @@ class LogViewModel @Inject constructor( fun rebaseInteractive(revCommit: RevCommit) = tabState.safeProcessing( refreshType = RefreshType.REBASE_INTERACTIVE_STATE, taskType = TaskType.REBASE_INTERACTIVE, + positiveFeedbackText = null, ) { git -> startRebaseInteractiveUseCase(git, revCommit) } diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/MenuViewModel.kt b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/MenuViewModel.kt index f64c3cba..36014949 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/MenuViewModel.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/MenuViewModel.kt @@ -34,7 +34,7 @@ class MenuViewModel @Inject constructor( refreshType = RefreshType.ALL_DATA, title = "Pulling", subtitle = "Pulling changes from the remote branch to the current branch", - positiveFeedbackText = "Pull completed successfully", + positiveFeedbackText = "Pull completed", refreshEvenIfCrashes = true, taskType = TaskType.PULL, ) { git -> @@ -48,6 +48,7 @@ class MenuViewModel @Inject constructor( isCancellable = false, refreshEvenIfCrashes = true, taskType = TaskType.FETCH, + positiveFeedbackText = "Fetch all completed", ) { git -> fetchAllBranchesUseCase(git) } @@ -59,6 +60,7 @@ class MenuViewModel @Inject constructor( isCancellable = false, refreshEvenIfCrashes = true, taskType = TaskType.PUSH, + positiveFeedbackText = "Push completed", ) { git -> pushBranchUseCase(git, force, pushTags) } @@ -66,7 +68,7 @@ class MenuViewModel @Inject constructor( fun stash() = tabState.safeProcessing( refreshType = RefreshType.UNCOMMITTED_CHANGES_AND_LOG, taskType = TaskType.STASH, - positiveFeedbackText = "Changes have been stashed", + positiveFeedbackText = "Changes stashed", ) { git -> stashChangesUseCase(git, null) } @@ -75,6 +77,7 @@ class MenuViewModel @Inject constructor( refreshType = RefreshType.UNCOMMITTED_CHANGES_AND_LOG, refreshEvenIfCrashes = true, taskType = TaskType.POP_STASH, + positiveFeedbackText = "Stash popped", ) { git -> popLastStashUseCase(git) } diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/RebaseInteractiveViewModel.kt b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/RebaseInteractiveViewModel.kt index 8e93e5fc..a13205e9 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/RebaseInteractiveViewModel.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/RebaseInteractiveViewModel.kt @@ -67,6 +67,7 @@ class RebaseInteractiveViewModel @Inject constructor( fun loadRebaseInteractiveData() = tabState.safeProcessing( refreshType = RefreshType.NONE, taskType = TaskType.REBASE_INTERACTIVE,// TODO Perhaps this should be more specific such as TaskType.LOAD_ABORT_REBASE + positiveFeedbackText = null, ) { git -> val state = getRepositoryStateUseCase(git) @@ -125,6 +126,7 @@ class RebaseInteractiveViewModel @Inject constructor( fun continueRebaseInteractive() = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, taskType = TaskType.REBASE_INTERACTIVE, // TODO Perhaps be more precise with the task type + positiveFeedbackText = null, ) { git -> resumeRebaseInteractiveUseCase(git, interactiveHandlerContinue) _rebaseState.value = RebaseInteractiveViewState.Loading @@ -179,6 +181,7 @@ class RebaseInteractiveViewModel @Inject constructor( fun selectLine(line: RebaseLine) = tabState.safeProcessing( refreshType = RefreshType.NONE, taskType = TaskType.ABORT_REBASE, // TODO Perhaps be more precise with the task type + positiveFeedbackText = null, ) { git -> val fullCommit = getCommitFromRebaseLineUseCase(git, line.commit, line.shortMessage) tabState.newSelectedCommit(fullCommit) diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedBranchesViewModel.kt b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedBranchesViewModel.kt index 8eed6f7c..7422d903 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedBranchesViewModel.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedBranchesViewModel.kt @@ -34,6 +34,7 @@ class SharedBranchesViewModel @Inject constructor( title = "Branch merge", subtitle = "Merging branch ${ref.simpleName}", taskType = TaskType.MERGE_BRANCH, + positiveFeedbackText = "Merged from \"${ref.simpleName}\"", ) { git -> mergeBranchUseCase(git, ref, appSettingsRepository.ffMerge) } @@ -43,6 +44,7 @@ class SharedBranchesViewModel @Inject constructor( title = "Branch delete", subtitle = "Deleting branch ${branch.simpleName}", taskType = TaskType.DELETE_BRANCH, + positiveFeedbackText = "\"${branch.simpleName}\" deleted", ) { git -> deleteBranchUseCase(git, branch) } @@ -52,6 +54,7 @@ class SharedBranchesViewModel @Inject constructor( title = "Branch checkout", subtitle = "Checking out branch ${ref.simpleName}", taskType = TaskType.CHECKOUT_BRANCH, + positiveFeedbackText = "\"${ref.simpleName}\" checked out", ) { git -> checkoutRefUseCase(git, ref) } @@ -61,6 +64,7 @@ class SharedBranchesViewModel @Inject constructor( title = "Branch rebase", subtitle = "Rebasing branch ${ref.simpleName}", taskType = TaskType.REBASE_BRANCH, + positiveFeedbackText = "\"${ref.simpleName}\" rebased", ) { git -> rebaseBranchUseCase(git, ref) } diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedRemotesViewModel.kt b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedRemotesViewModel.kt index 0a34febf..be48a45b 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedRemotesViewModel.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedRemotesViewModel.kt @@ -31,6 +31,7 @@ class SharedRemotesViewModel @Inject constructor( title = "Deleting remote branch", subtitle = "Remote branch ${ref.simpleName} will be deleted from the remote", taskType = TaskType.DELETE_REMOTE_BRANCH, + positiveFeedbackText = "Remote branch \"${ref.simpleName}\" deleted", ) { git -> deleteRemoteBranchUseCase(git, ref) } @@ -38,6 +39,7 @@ class SharedRemotesViewModel @Inject constructor( override fun checkoutRemoteBranch(remoteBranch: Ref) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, taskType = TaskType.CHECKOUT_REMOTE_BRANCH, + positiveFeedbackText = "\"${remoteBranch.simpleName}\" checked out", ) { git -> checkoutRefUseCase(git, remoteBranch) } @@ -47,6 +49,7 @@ class SharedRemotesViewModel @Inject constructor( title = "Push", subtitle = "Pushing current branch to ${branch.simpleName}", taskType = TaskType.PUSH_TO_BRANCH, + positiveFeedbackText = "Pushed to \"${branch.simpleName}\"", ) { git -> pushToSpecificBranchUseCase( git = git, @@ -61,6 +64,7 @@ class SharedRemotesViewModel @Inject constructor( title = "Pull", subtitle = "Pulling changes from ${branch.simpleName} to the current branch", taskType = TaskType.PULL_FROM_BRANCH, + positiveFeedbackText = "Pulled from \"${branch.simpleName}\"", ) { git -> pullFromSpecificBranchUseCase( git = git, diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedStashViewModel.kt b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedStashViewModel.kt index 84da7dc7..7de1bb01 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedStashViewModel.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedStashViewModel.kt @@ -29,6 +29,7 @@ class SharedStashViewModel @Inject constructor( refreshType = RefreshType.UNCOMMITTED_CHANGES_AND_LOG, refreshEvenIfCrashes = true, taskType = TaskType.APPLY_STASH, + positiveFeedbackText = "Stash applied", ) { git -> applyStashUseCase(git, stashInfo) } @@ -37,6 +38,7 @@ class SharedStashViewModel @Inject constructor( refreshType = RefreshType.UNCOMMITTED_CHANGES_AND_LOG, refreshEvenIfCrashes = true, taskType = TaskType.POP_STASH, + positiveFeedbackText = "Stash popped", ) { git -> popStashUseCase(git, stash) @@ -46,6 +48,7 @@ class SharedStashViewModel @Inject constructor( override fun deleteStash(stash: RevCommit) = tabState.safeProcessing( refreshType = RefreshType.STASHES, taskType = TaskType.DELETE_STASH, + positiveFeedbackText = "Stash deleted", ) { git -> deleteStashUseCase(git, stash) diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedTagsViewModel.kt b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedTagsViewModel.kt index b9fdb426..13136ed6 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedTagsViewModel.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/SharedTagsViewModel.kt @@ -22,6 +22,7 @@ class SharedTagsViewModel @Inject constructor( title = "Tag delete", subtitle = "Deleting tag ${tag.simpleName}", taskType = TaskType.DELETE_TAG, + positiveFeedbackText = "Tag \"${tag.simpleName}\" deleted", ) { git -> deleteTagUseCase(git, tag) } diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/StatusViewModel.kt b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/StatusViewModel.kt index cb2a3614..05caad38 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/StatusViewModel.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/StatusViewModel.kt @@ -216,6 +216,7 @@ class StatusViewModel @Inject constructor( fun unstageAll() = tabState.safeProcessing( refreshType = RefreshType.UNCOMMITTED_CHANGES, taskType = TaskType.UNSTAGE_ALL_FILES, + positiveFeedbackText = null, ) { git -> unstageAllUseCase(git) } @@ -223,6 +224,7 @@ class StatusViewModel @Inject constructor( fun stageAll() = tabState.safeProcessing( refreshType = RefreshType.UNCOMMITTED_CHANGES, taskType = TaskType.STAGE_ALL_FILES, + positiveFeedbackText = null, ) { git -> stageAllUseCase(git) } @@ -347,6 +349,7 @@ class StatusViewModel @Inject constructor( fun commit(message: String) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, taskType = TaskType.DO_COMMIT, + positiveFeedbackText = "New commit added", ) { git -> val amend = isAmend.value @@ -401,6 +404,7 @@ class StatusViewModel @Inject constructor( fun continueRebase(message: String) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, taskType = TaskType.CONTINUE_REBASE, + positiveFeedbackText = null, ) { git -> val repositoryState = sharedRepositoryStateManager.repositoryState.value val rebaseInteractiveState = sharedRepositoryStateManager.rebaseInteractiveState.value @@ -424,6 +428,7 @@ class StatusViewModel @Inject constructor( fun abortRebase() = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, taskType = TaskType.ABORT_REBASE, + positiveFeedbackText = "Rebase aborted", ) { git -> abortRebaseUseCase(git) } @@ -431,6 +436,7 @@ class StatusViewModel @Inject constructor( fun skipRebase() = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, taskType = TaskType.SKIP_REBASE, + positiveFeedbackText = null, ) { git -> skipRebaseUseCase(git) } @@ -438,6 +444,7 @@ class StatusViewModel @Inject constructor( fun resetRepoState() = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, taskType = TaskType.RESET_REPO_STATE, + positiveFeedbackText = "Repository state has been reset", ) { git -> resetRepositoryStateUseCase(git) } diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/TabViewModel.kt b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/TabViewModel.kt index 2c6c34e3..c64e6059 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/TabViewModel.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/TabViewModel.kt @@ -34,7 +34,6 @@ import org.eclipse.jgit.blame.BlameResult import org.eclipse.jgit.lib.Repository import org.eclipse.jgit.lib.RepositoryState import org.eclipse.jgit.revwalk.RevCommit -import uniffi.gitnuro.WatcherInitException import java.awt.Desktop import java.io.File import javax.inject.Inject @@ -252,31 +251,31 @@ class TabViewModel @Inject constructor( } } - try { +// try { fileChangesWatcher.watchDirectoryPath( repository = git.repository, ) - } catch (ex: WatcherInitException) { - val message = when (ex) { - is WatcherInitException.Generic -> ex.error - is WatcherInitException.InvalidConfig -> "Invalid configuration" - is WatcherInitException.Io -> ex.error - is WatcherInitException.MaxFilesWatch -> "Reached the limit of files that can be watched. Please increase the system inotify limit to be able to detect the changes on this repository." - is WatcherInitException.PathNotFound -> "Path not found, check if your repository still exists" - is WatcherInitException.WatchNotFound -> null // This should never trigger as we don't unwatch files - } - - if (message != null) { - errorsManager.addError( - newErrorNow( - exception = ex, - taskType = TaskType.CHANGES_DETECTION, -// title = "Repository changes detection has stopped working", -// message = message, - ), - ) - } - } +// } catch (ex: WatcherInitException) { +// val message = when (ex) { +// is WatcherInitException.Generic -> ex.error +// is WatcherInitException.InvalidConfig -> "Invalid configuration" +// is WatcherInitException.Io -> ex.error +// is WatcherInitException.MaxFilesWatch -> "Reached the limit of files that can be watched. Please increase the system inotify limit to be able to detect the changes on this repository." +// is WatcherInitException.PathNotFound -> "Path not found, check if your repository still exists" +// is WatcherInitException.WatchNotFound -> null // This should never trigger as we don't unwatch files +// } +// +// if (message != null) { +// errorsManager.addError( +// newErrorNow( +// exception = ex, +// taskType = TaskType.CHANGES_DETECTION, +//// title = "Repository changes detection has stopped working", +//// message = message, +// ), +// ) +// } +// } } private suspend fun updateApp(hasGitDirChanged: Boolean) { @@ -355,6 +354,7 @@ class TabViewModel @Inject constructor( fun blameFile(filePath: String) = tabState.safeProcessing( refreshType = RefreshType.NONE, taskType = TaskType.BLAME_FILE, + positiveFeedbackText = null, ) { git -> _blameState.value = BlameState.Loading(filePath) try { @@ -419,6 +419,7 @@ class TabViewModel @Inject constructor( refreshType = RefreshType.ALL_DATA, refreshEvenIfCrashesInteractive = { it is CheckoutConflictException }, taskType = TaskType.CREATE_BRANCH, + positiveFeedbackText = "Branch \"${branchName}\" created", ) { git -> createBranchUseCase(git, branchName) } @@ -426,6 +427,7 @@ class TabViewModel @Inject constructor( fun stashWithMessage(message: String) = tabState.safeProcessing( refreshType = RefreshType.UNCOMMITTED_CHANGES_AND_LOG, taskType = TaskType.STASH, + positiveFeedbackText = "Changes stashed", ) { git -> stageUntrackedFileUseCase(git) stashChangesUseCase(git, message) diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/sidepanel/RemotesViewModel.kt b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/sidepanel/RemotesViewModel.kt index c2a9c6aa..9dbe20d7 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/sidepanel/RemotesViewModel.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/sidepanel/RemotesViewModel.kt @@ -118,6 +118,7 @@ class RemotesViewModel @AssistedInject constructor( fun deleteRemote(remoteName: String, isNew: Boolean) = tabState.safeProcessing( refreshType = if (isNew) RefreshType.REMOTES else RefreshType.ALL_DATA, taskType = TaskType.DELETE_REMOTE, + positiveFeedbackText = "Remote $remoteName deleted", ) { git -> deleteRemoteUseCase(git, remoteName) diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/sidepanel/SubmodulesViewModel.kt b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/sidepanel/SubmodulesViewModel.kt index f7c03170..415af927 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/sidepanel/SubmodulesViewModel.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/sidepanel/SubmodulesViewModel.kt @@ -61,6 +61,7 @@ class SubmodulesViewModel @AssistedInject constructor( fun initializeSubmodule(path: String) = tabState.safeProcessing( refreshType = RefreshType.SUBMODULES, taskType = TaskType.INIT_SUBMODULE, + positiveFeedbackText = null, ) { git -> initializeSubmoduleUseCase(git, path) updateSubmoduleUseCase(git, path) @@ -78,6 +79,7 @@ class SubmodulesViewModel @AssistedInject constructor( refreshType = RefreshType.SUBMODULES, title = "Deinitializing submodule $path", taskType = TaskType.DEINIT_SUBMODULE, + positiveFeedbackText = null, ) { git -> deInitializeSubmoduleUseCase(git, path) } @@ -87,6 +89,7 @@ class SubmodulesViewModel @AssistedInject constructor( title = "Syncing submodule $path", subtitle = "Please wait until synchronization has finished", taskType = TaskType.SYNC_SUBMODULE, + positiveFeedbackText = "Submodule synced", ) { git -> syncSubmoduleUseCase(git, path) } @@ -96,6 +99,7 @@ class SubmodulesViewModel @AssistedInject constructor( title = "Updating submodule $path", subtitle = "Please wait until update has finished", taskType = TaskType.UPDATE_SUBMODULE, + positiveFeedbackText = "Submodule updated", ) { git -> updateSubmoduleUseCase(git, path) } @@ -103,6 +107,7 @@ class SubmodulesViewModel @AssistedInject constructor( fun onCreateSubmodule(repository: String, directory: String) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, taskType = TaskType.ADD_SUBMODULE, + positiveFeedbackText = "Submodule created", ) { git -> addSubmoduleUseCase( git = git, @@ -115,6 +120,7 @@ class SubmodulesViewModel @AssistedInject constructor( fun onDeleteSubmodule(path: String) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, taskType = TaskType.DELETE_SUBMODULE, + positiveFeedbackText = "Submodule deleted", ) { git -> deleteSubmoduleUseCase(git, path) } diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/sidepanel/TagsViewModel.kt b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/sidepanel/TagsViewModel.kt index b3888b7e..8f028318 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/sidepanel/TagsViewModel.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/viewmodels/sidepanel/TagsViewModel.kt @@ -60,6 +60,7 @@ class TagsViewModel @AssistedInject constructor( fun checkoutTagCommit(ref: Ref) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, taskType = TaskType.INIT_SUBMODULE, + positiveFeedbackText = "Commit checked out", ) { git -> checkoutCommitUseCase(git, ref.objectId.name) }