From aa8b4abf0930ffcaa96b20f78708e563ff0bf5bd Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Sun, 11 Aug 2024 19:15:09 -0300 Subject: [PATCH] fix: Copy left file before running unstructured merge --- .../GenericMerge/UnstructuredMergeCollector.groovy | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/services/dataCollectors/GenericMerge/UnstructuredMergeCollector.groovy b/src/main/services/dataCollectors/GenericMerge/UnstructuredMergeCollector.groovy index 9568b7432..6b92bb655 100644 --- a/src/main/services/dataCollectors/GenericMerge/UnstructuredMergeCollector.groovy +++ b/src/main/services/dataCollectors/GenericMerge/UnstructuredMergeCollector.groovy @@ -8,6 +8,7 @@ import services.mergeScenariosFilters.NonFastForwardMergeScenarioFilter import util.CsvUtils import util.ProcessRunner +import java.nio.file.Files import java.nio.file.Path class UnstructuredMergeCollector implements DataCollector { @@ -30,12 +31,15 @@ class UnstructuredMergeCollector implements DataCollector { def executionTimes = new ArrayList() for (int i = 0; i < GenericMergeConfig.NUMBER_OF_EXECUTIONS; i++) { + // We copy the left file, because git merge-file runs in place, replacing the contents of left file + Files.copy(scenario.resolve("left.java"), scenario.resolve("merge.unstructured.java")) + long startTime = System.nanoTime() def processBuilder = ProcessRunner.buildProcess(GenericMergeConfig.BASE_EXPERIMENT_PATH, "git", "merge-file", - scenario.resolve("left.java").toString(), + scenario.resolve("merge.unstructured.java").toString(), scenario.resolve("base.java").toString(), scenario.resolve("right.java").toString()) ProcessRunner.startProcess(processBuilder).waitFor()