Discarding hunks now always uses UTF-8

Fixes #170
This commit is contained in:
Abdelilah El Aissaoui 2023-11-11 14:46:30 +01:00
parent 0ea427cb49
commit 81c37043ca
No known key found for this signature in database
GPG Key ID: 7587FC860F594869
3 changed files with 4 additions and 10 deletions

View File

@ -5,7 +5,7 @@ import kotlinx.coroutines.withContext
import org.eclipse.jgit.api.Git import org.eclipse.jgit.api.Git
import javax.inject.Inject import javax.inject.Inject
class ResetEntryUseCase @Inject constructor() { class DiscardEntryUseCase @Inject constructor() {
suspend operator fun invoke(git: Git, statusEntry: StatusEntry, staged: Boolean): Unit = suspend operator fun invoke(git: Git, statusEntry: StatusEntry, staged: Boolean): Unit =
withContext(Dispatchers.IO) { withContext(Dispatchers.IO) {
if (staged || statusEntry.statusType == StatusType.CONFLICTING) { if (staged || statusEntry.statusType == StatusType.CONFLICTING) {

View File

@ -1,7 +1,6 @@
package com.jetpackduba.gitnuro.git.workspace package com.jetpackduba.gitnuro.git.workspace
import com.jetpackduba.gitnuro.extensions.filePath import com.jetpackduba.gitnuro.extensions.filePath
import com.jetpackduba.gitnuro.extensions.lineDelimiter
import com.jetpackduba.gitnuro.git.diff.Hunk import com.jetpackduba.gitnuro.git.diff.Hunk
import com.jetpackduba.gitnuro.git.diff.Line import com.jetpackduba.gitnuro.git.diff.Line
import com.jetpackduba.gitnuro.git.diff.LineType import com.jetpackduba.gitnuro.git.diff.LineType
@ -10,7 +9,6 @@ import kotlinx.coroutines.withContext
import org.eclipse.jgit.api.Git import org.eclipse.jgit.api.Git
import org.eclipse.jgit.diff.DiffEntry import org.eclipse.jgit.diff.DiffEntry
import java.io.File import java.io.File
import java.io.FileWriter
import javax.inject.Inject import javax.inject.Inject
class DiscardUnstagedHunkLineUseCase @Inject constructor( class DiscardUnstagedHunkLineUseCase @Inject constructor(
@ -22,7 +20,7 @@ class DiscardUnstagedHunkLineUseCase @Inject constructor(
try { try {
val file = File(repository.workTree, diffEntry.filePath) val file = File(repository.workTree, diffEntry.filePath)
val content = file.readText() val content = file.readText(Charsets.UTF_8)
val textLines = getLinesFromTextUseCase(content).toMutableList() val textLines = getLinesFromTextUseCase(content).toMutableList()
if (line.lineType == LineType.ADDED) { if (line.lineType == LineType.ADDED) {
@ -47,13 +45,9 @@ class DiscardUnstagedHunkLineUseCase @Inject constructor(
} }
} }
println(content)
val resultText = textLines.joinToString("") val resultText = textLines.joinToString("")
file.writeText(resultText, Charsets.UTF_8)
FileWriter(file).use { fw ->
fw.write(resultText)
}
} catch (ex: Exception) { } catch (ex: Exception) {
throw Exception( throw Exception(
"Discard hunk line failed. Check if the file still exists and has the write permissions set", "Discard hunk line failed. Check if the file still exists and has the write permissions set",

View File

@ -37,7 +37,7 @@ class StatusViewModel @Inject constructor(
private val tabState: TabState, private val tabState: TabState,
private val stageEntryUseCase: StageEntryUseCase, private val stageEntryUseCase: StageEntryUseCase,
private val unstageEntryUseCase: UnstageEntryUseCase, private val unstageEntryUseCase: UnstageEntryUseCase,
private val resetEntryUseCase: ResetEntryUseCase, private val resetEntryUseCase: DiscardEntryUseCase,
private val stageAllUseCase: StageAllUseCase, private val stageAllUseCase: StageAllUseCase,
private val unstageAllUseCase: UnstageAllUseCase, private val unstageAllUseCase: UnstageAllUseCase,
private val checkHasPreviousCommitsUseCase: CheckHasPreviousCommitsUseCase, private val checkHasPreviousCommitsUseCase: CheckHasPreviousCommitsUseCase,