Fixed crash when clicking on the first commit

This commit is contained in:
Abdelilah El Aissaoui 2021-09-30 17:23:39 +02:00
parent 47b89de37e
commit 54092ba112

View File

@ -1,8 +1,10 @@
import androidx.compose.animation.Crossfade import androidx.compose.animation.Crossfade
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import extensions.filePath
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 org.eclipse.jgit.lib.Repository import org.eclipse.jgit.lib.Repository
@ -13,6 +15,7 @@ import org.eclipse.jgit.treewalk.AbstractTreeIterator
import org.eclipse.jgit.treewalk.CanonicalTreeParser import org.eclipse.jgit.treewalk.CanonicalTreeParser
import java.io.IOException import java.io.IOException
@Composable @Composable
fun RepositorySelected(gitManager: GitManager, repository: Repository) { fun RepositorySelected(gitManager: GitManager, repository: Repository) {
var selectedRevCommit by remember { var selectedRevCommit by remember {
@ -50,7 +53,7 @@ fun RepositorySelected(gitManager: GitManager, repository: Repository) {
selectedIndex = selectedIndexCommitLog, selectedIndex = selectedIndexCommitLog,
onRevCommitSelected = { commit -> onRevCommitSelected = { commit ->
uncommitedChangesSelected = false uncommitedChangesSelected = false
// TODO Move all this code to tree manager
gitManager.loadStatus() gitManager.loadStatus()
val parent = if (commit.parentCount == 0) { val parent = if (commit.parentCount == 0) {
@ -58,9 +61,14 @@ fun RepositorySelected(gitManager: GitManager, repository: Repository) {
} else } else
commit.parents.first() commit.parents.first()
val oldTreeParser = val oldTreeParser = if(parent != null)
prepareTreeParser(repository, parent!!) //TODO Will crash with first commit prepareTreeParser(repository, parent)
else {
CanonicalTreeParser()
}
val newTreeParser = prepareTreeParser(repository, commit) val newTreeParser = prepareTreeParser(repository, commit)
Git(repository).use { git -> Git(repository).use { git ->
val diffs = git.diff() val diffs = git.diff()
.setNewTree(newTreeParser) .setNewTree(newTreeParser)