mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
git: fix tests with 'ort' merge algorithm
Tests are mostly affected by changes in 'Rename-Delete' conflicts: https://github.com/git/git/commit/727c75b23f25f752810f412e936d420f5c7fee04 GitOrigin-RevId: 4d60452cdc339a2f532125783d3a98e67410f22f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
5b0200db5c
commit
10f7715893
@@ -85,9 +85,16 @@ abstract class GitMergeProviderTestBase : GitMergeProviderTestCase() {
|
||||
`invoke conflicting operation`("A", "B")
|
||||
|
||||
`assert all revisions loaded`("A", "B")
|
||||
`assert revision GOOD, path BAD `(Side.ORIGINAL)
|
||||
`assert revision GOOD, path BAD `(Side.LAST)
|
||||
`assert revision GOOD, path GOOD`(Side.CURRENT)
|
||||
if (gitUsingOrtMergeAlg()) {
|
||||
`assert revision GOOD, path GOOD`(Side.ORIGINAL)
|
||||
`assert revision GOOD, path BAD `(Side.LAST)
|
||||
`assert revision GOOD, path GOOD`(Side.CURRENT)
|
||||
}
|
||||
else {
|
||||
`assert revision GOOD, path BAD `(Side.ORIGINAL)
|
||||
`assert revision GOOD, path BAD `(Side.LAST)
|
||||
`assert revision GOOD, path GOOD`(Side.CURRENT)
|
||||
}
|
||||
}
|
||||
|
||||
fun `test deleted vs rename`() {
|
||||
@@ -97,8 +104,15 @@ abstract class GitMergeProviderTestBase : GitMergeProviderTestCase() {
|
||||
`invoke conflicting operation`("A", "B")
|
||||
|
||||
`assert all revisions loaded`("A", "B")
|
||||
`assert revision GOOD, path BAD `(Side.ORIGINAL)
|
||||
`assert revision GOOD, path GOOD`(Side.LAST)
|
||||
`assert revision GOOD, path BAD `(Side.CURRENT)
|
||||
if (gitUsingOrtMergeAlg()) {
|
||||
`assert revision GOOD, path GOOD`(Side.ORIGINAL)
|
||||
`assert revision GOOD, path GOOD`(Side.LAST)
|
||||
`assert revision GOOD, path BAD `(Side.CURRENT)
|
||||
}
|
||||
else {
|
||||
`assert revision GOOD, path BAD `(Side.ORIGINAL)
|
||||
`assert revision GOOD, path GOOD`(Side.LAST)
|
||||
`assert revision GOOD, path BAD `(Side.CURRENT)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,10 +29,7 @@ import git4idea.GitUtil
|
||||
import git4idea.GitVcs
|
||||
import git4idea.commands.Git
|
||||
import git4idea.commands.GitHandler
|
||||
import git4idea.config.GitExecutableManager
|
||||
import git4idea.config.GitSaveChangesPolicy
|
||||
import git4idea.config.GitVcsApplicationSettings
|
||||
import git4idea.config.GitVcsSettings
|
||||
import git4idea.config.*
|
||||
import git4idea.log.GitLogProvider
|
||||
import git4idea.repo.GitRepository
|
||||
import git4idea.repo.GitRepositoryManager
|
||||
@@ -248,6 +245,13 @@ abstract class GitPlatformTest : VcsPlatformTest() {
|
||||
assertTrue("Commit dialog was not shown", vcsHelper.commitDialogWasShown())
|
||||
}
|
||||
|
||||
/**
|
||||
* There are small differences between 'recursive' (old) and 'ort' (new) merge algorithms.
|
||||
*/
|
||||
protected fun gitUsingOrtMergeAlg(): Boolean {
|
||||
return vcs.version.isLaterOrEqual(GitVersion(2, 34, 0, 0))
|
||||
}
|
||||
|
||||
protected fun assertNoChanges() {
|
||||
changeListManager.assertNoChanges()
|
||||
}
|
||||
|
||||
@@ -63,7 +63,12 @@ class GitChangeProviderConflictTest : GitChangeProviderTest() {
|
||||
modifyFileInBranches("a.txt", FileAction.RENAME, FileAction.DELETE)
|
||||
val newfile = projectRoot.findChild("a.txt_master_new") // renamed in master
|
||||
assertProviderChanges(newfile!!, FileStatus.MERGED_WITH_CONFLICTS)
|
||||
assertManagerConflicts(Conflict("a.txt_master_new", Status.ADDED, Status.MODIFIED))
|
||||
if (gitUsingOrtMergeAlg()) {
|
||||
assertManagerConflicts(Conflict("a.txt_master_new", Status.MODIFIED, Status.DELETED))
|
||||
}
|
||||
else {
|
||||
assertManagerConflicts(Conflict("a.txt_master_new", Status.ADDED, Status.MODIFIED))
|
||||
}
|
||||
}
|
||||
|
||||
fun testConflictDR() {
|
||||
@@ -71,7 +76,12 @@ class GitChangeProviderConflictTest : GitChangeProviderTest() {
|
||||
// deleted in master, renamed in feature
|
||||
val newFile = projectRoot.findChild("a.txt_feature_new")!!
|
||||
assertProviderChanges(newFile, FileStatus.MERGED_WITH_CONFLICTS)
|
||||
assertManagerConflicts(Conflict("a.txt_feature_new", Status.MODIFIED, Status.ADDED))
|
||||
if (gitUsingOrtMergeAlg()) {
|
||||
assertManagerConflicts(Conflict("a.txt_feature_new", Status.DELETED, Status.MODIFIED))
|
||||
}
|
||||
else {
|
||||
assertManagerConflicts(Conflict("a.txt_feature_new", Status.MODIFIED, Status.ADDED))
|
||||
}
|
||||
}
|
||||
|
||||
fun testConflictRR() {
|
||||
|
||||
Reference in New Issue
Block a user