mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
lst: unify partial commit methods
This commit is contained in:
@@ -369,18 +369,26 @@ class PartialLocalLineStatusTracker(project: Project,
|
||||
}
|
||||
|
||||
|
||||
fun hasPartialChangesToCommit(): Boolean {
|
||||
return documentTracker.readLock {
|
||||
affectedChangeLists.size > 1
|
||||
}
|
||||
}
|
||||
|
||||
fun getPartiallyAppliedContent(side: Side, changelistIds: List<String>): String {
|
||||
return runReadAction {
|
||||
val markers = changelistIds.mapTo(HashSet()) { ChangeListMarker(it) }
|
||||
documentTracker.getContentWithPartiallyAppliedBlocks(side) { markers.contains(it.marker) }
|
||||
val toCommitCondition: (Block) -> Boolean = { markers.contains(it.marker) }
|
||||
documentTracker.getContentWithPartiallyAppliedBlocks(side, toCommitCondition)
|
||||
}
|
||||
}
|
||||
|
||||
@CalledInAwt
|
||||
fun handlePartialCommit(side: Side, changelistId: String): PartialCommitHelper {
|
||||
val marker = ChangeListMarker(changelistId)
|
||||
fun handlePartialCommit(side: Side, changelistIds: List<String>): PartialCommitHelper {
|
||||
val markers = changelistIds.mapTo(HashSet()) { ChangeListMarker(it) }
|
||||
val toCommitCondition: (Block) -> Boolean = { markers.contains(it.marker) }
|
||||
|
||||
val contentToCommit = documentTracker.getContentWithPartiallyAppliedBlocks(side) { it.marker == marker }
|
||||
val contentToCommit = documentTracker.getContentWithPartiallyAppliedBlocks(side, toCommitCondition)
|
||||
|
||||
return object : PartialCommitHelper(contentToCommit) {
|
||||
override fun applyChanges() {
|
||||
@@ -388,7 +396,7 @@ class PartialLocalLineStatusTracker(project: Project,
|
||||
|
||||
val success = updateDocument(side) { doc ->
|
||||
documentTracker.doFrozen(side) {
|
||||
documentTracker.partiallyApplyBlocks(side, { it.marker == marker }, { _, _ -> })
|
||||
documentTracker.partiallyApplyBlocks(side, toCommitCondition, { _, _ -> })
|
||||
|
||||
doc.setText(contentToCommit)
|
||||
}
|
||||
|
||||
@@ -422,6 +422,10 @@ abstract class BaseLineStatusTrackerTestCase : LightPlatformTestCase() {
|
||||
}
|
||||
|
||||
|
||||
fun handlePartialCommit(side: Side, list: String): PartialLocalLineStatusTracker.PartialCommitHelper {
|
||||
return partialTracker.handlePartialCommit(side, listOf(list.toListId()))
|
||||
}
|
||||
|
||||
fun moveChanges(fromList: String, toList: String) {
|
||||
assertContainsElements(changeListNames(), fromList)
|
||||
assertContainsElements(changeListNames(), toList)
|
||||
|
||||
@@ -205,7 +205,7 @@ class PartialLineStatusTrackerTest : BaseLineStatusTrackerTestCase() {
|
||||
assertBaseTextContentIs("A_B_C_D_E_F_G_H_")
|
||||
assertAffectedChangelists("Default", "Test")
|
||||
|
||||
val helper = partialTracker.handlePartialCommit(Side.LEFT, "Test".toListId())
|
||||
val helper = handlePartialCommit(Side.LEFT, "Test")
|
||||
helper.applyChanges()
|
||||
|
||||
assertHelperContentIs("A_B_C_E_F_G_N_H_", helper)
|
||||
@@ -228,7 +228,7 @@ class PartialLineStatusTrackerTest : BaseLineStatusTrackerTestCase() {
|
||||
assertBaseTextContentIs("A_B_C_D_E_F_G_H_")
|
||||
assertAffectedChangelists("Default", "Test")
|
||||
|
||||
val helper = partialTracker.handlePartialCommit(Side.LEFT, "Default".toListId())
|
||||
val helper = handlePartialCommit(Side.LEFT, "Default")
|
||||
helper.applyChanges()
|
||||
|
||||
assertHelperContentIs("A_B1_C_D_E_F_M_G_H_", helper)
|
||||
@@ -251,7 +251,7 @@ class PartialLineStatusTrackerTest : BaseLineStatusTrackerTestCase() {
|
||||
assertBaseTextContentIs("A_B_C_D_E_F_G_H_")
|
||||
assertAffectedChangelists("Default", "Test")
|
||||
|
||||
val helper = partialTracker.handlePartialCommit(Side.RIGHT, "Test".toListId())
|
||||
val helper = handlePartialCommit(Side.RIGHT, "Test")
|
||||
helper.applyChanges()
|
||||
|
||||
assertHelperContentIs("A_B1_C_D_E_F_M_G_H_", helper)
|
||||
@@ -278,7 +278,7 @@ class PartialLineStatusTrackerTest : BaseLineStatusTrackerTestCase() {
|
||||
runCommand {
|
||||
"B1_".replace("X_Y_Z_")
|
||||
|
||||
val helper = partialTracker.handlePartialCommit(Side.LEFT, "Default".toListId())
|
||||
val helper = handlePartialCommit(Side.LEFT, "Default")
|
||||
helper.applyChanges()
|
||||
|
||||
assertHelperContentIs("A_X_Y_Z_C_D_E_F_M_G_H_", helper)
|
||||
@@ -307,7 +307,7 @@ class PartialLineStatusTrackerTest : BaseLineStatusTrackerTestCase() {
|
||||
runCommand {
|
||||
"B1_".replace("X_Y_Z_")
|
||||
|
||||
val helper = partialTracker.handlePartialCommit(Side.LEFT, "Default".toListId())
|
||||
val helper = handlePartialCommit(Side.LEFT, "Default")
|
||||
|
||||
"N".replace("N2")
|
||||
"M".replace("M2")
|
||||
|
||||
@@ -388,8 +388,8 @@ public class GitCheckinEnvironment implements CheckinEnvironment {
|
||||
return null; // commit failure
|
||||
}
|
||||
|
||||
if (tracker.getAffectedChangeListsIds().size() > 1) {
|
||||
helpers.add(tracker.handlePartialCommit(Side.LEFT, changelistId));
|
||||
if (tracker.hasPartialChangesToCommit()) {
|
||||
helpers.add(tracker.handlePartialCommit(Side.LEFT, Collections.singletonList(changelistId)));
|
||||
partialChanges.add(change);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user