Backup project's system dir when create backup for debugging Kotlin incremental compilation
This commit is contained in:
+28
-17
@@ -16,29 +16,28 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.internal.makeBackup
|
package org.jetbrains.kotlin.idea.internal.makeBackup
|
||||||
|
|
||||||
|
import com.intellij.compiler.server.BuildManager
|
||||||
|
import com.intellij.history.core.RevisionsCollector
|
||||||
|
import com.intellij.history.integration.LocalHistoryImpl
|
||||||
|
import com.intellij.history.integration.patches.PatchCreator
|
||||||
|
import com.intellij.ide.actions.ShowFilePathAction
|
||||||
import com.intellij.openapi.actionSystem.AnAction
|
import com.intellij.openapi.actionSystem.AnAction
|
||||||
import com.intellij.openapi.actionSystem.AnActionEvent
|
import com.intellij.openapi.actionSystem.AnActionEvent
|
||||||
import com.intellij.history.core.RevisionsCollector
|
|
||||||
import java.io.File
|
|
||||||
import com.intellij.history.integration.patches.PatchCreator
|
|
||||||
import com.intellij.history.integration.LocalHistoryImpl
|
|
||||||
import com.intellij.openapi.vcs.changes.Change
|
|
||||||
import com.intellij.openapi.application.PathManager
|
import com.intellij.openapi.application.PathManager
|
||||||
import com.intellij.openapi.util.io.FileUtil
|
import com.intellij.openapi.progress.ProgressIndicator
|
||||||
import com.intellij.openapi.project.Project
|
|
||||||
import java.util.ArrayList
|
|
||||||
import java.text.SimpleDateFormat
|
|
||||||
import java.util.Date
|
|
||||||
import com.intellij.openapi.progress.ProgressManager
|
import com.intellij.openapi.progress.ProgressManager
|
||||||
import com.intellij.openapi.progress.Task
|
import com.intellij.openapi.progress.Task
|
||||||
import com.intellij.openapi.progress.ProgressIndicator
|
import com.intellij.openapi.project.Project
|
||||||
import java.util.zip.ZipOutputStream
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
import java.io.FileOutputStream
|
import com.intellij.openapi.vcs.changes.Change
|
||||||
import com.intellij.util.io.ZipUtil
|
|
||||||
import com.intellij.ide.actions.ShowFilePathAction
|
|
||||||
import com.intellij.util.WaitForProgressToShow
|
import com.intellij.util.WaitForProgressToShow
|
||||||
import com.intellij.openapi.application.ApplicationManager
|
import com.intellij.util.io.ZipUtil
|
||||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||||
|
import java.io.File
|
||||||
|
import java.io.FileOutputStream
|
||||||
|
import java.text.SimpleDateFormat
|
||||||
|
import java.util.*
|
||||||
|
import java.util.zip.ZipOutputStream
|
||||||
|
|
||||||
public class CreateIncrementalCompilationBackup: AnAction("Create backup for debugging Kotlin incremental compilation") {
|
public class CreateIncrementalCompilationBackup: AnAction("Create backup for debugging Kotlin incremental compilation") {
|
||||||
companion object {
|
companion object {
|
||||||
@@ -47,7 +46,8 @@ public class CreateIncrementalCompilationBackup: AnAction("Create backup for deb
|
|||||||
|
|
||||||
val PATCHES_FRACTION = .25
|
val PATCHES_FRACTION = .25
|
||||||
val LOGS_FRACTION = .05
|
val LOGS_FRACTION = .05
|
||||||
val ZIP_FRACTION = 1.0 - PATCHES_FRACTION - LOGS_FRACTION
|
val PROJECT_SYSTEM_FRACTION = .05
|
||||||
|
val ZIP_FRACTION = 1.0 - PATCHES_FRACTION - LOGS_FRACTION - PROJECT_SYSTEM_FRACTION
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun update(e: AnActionEvent) {
|
override fun update(e: AnActionEvent) {
|
||||||
@@ -64,6 +64,7 @@ public class CreateIncrementalCompilationBackup: AnAction("Create backup for deb
|
|||||||
override fun run(indicator: ProgressIndicator) {
|
override fun run(indicator: ProgressIndicator) {
|
||||||
createPatches(backupDir, project, indicator)
|
createPatches(backupDir, project, indicator)
|
||||||
copyLogs(backupDir, indicator)
|
copyLogs(backupDir, indicator)
|
||||||
|
copyProjectSystemDir(backupDir, project, indicator)
|
||||||
|
|
||||||
zipProjectDir(backupDir, project, projectBaseDir, indicator)
|
zipProjectDir(backupDir, project, projectBaseDir, indicator)
|
||||||
}
|
}
|
||||||
@@ -119,6 +120,16 @@ public class CreateIncrementalCompilationBackup: AnAction("Create backup for deb
|
|||||||
indicator.setFraction(PATCHES_FRACTION + LOGS_FRACTION)
|
indicator.setFraction(PATCHES_FRACTION + LOGS_FRACTION)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun copyProjectSystemDir(backupDir: File, project: Project, indicator: ProgressIndicator) {
|
||||||
|
indicator.text = "Copying project's system dir "
|
||||||
|
indicator.fraction = PATCHES_FRACTION
|
||||||
|
|
||||||
|
val projectSystemDir = File(backupDir, "project-system")
|
||||||
|
FileUtil.copyDir(BuildManager.getInstance().getProjectSystemDirectory(project)!!, projectSystemDir)
|
||||||
|
|
||||||
|
indicator.fraction = PATCHES_FRACTION + LOGS_FRACTION + PROJECT_SYSTEM_FRACTION
|
||||||
|
}
|
||||||
|
|
||||||
private fun zipProjectDir(backupDir: File, project: Project, projectDir: File, indicator: ProgressIndicator) {
|
private fun zipProjectDir(backupDir: File, project: Project, projectDir: File, indicator: ProgressIndicator) {
|
||||||
// files and relative paths
|
// files and relative paths
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user