Skip to content

Commit 898ee70

Browse files
committed
Update merge import baseline
Use exact list of files to create merge import baseline from singlepatch PiperOrigin-RevId: 582018725 Change-Id: I8eff15d3265bda615ad6a60503ba5e3102c976d9
1 parent b0e7ec9 commit 898ee70

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

java/com/google/copybara/WorkflowRunHelper.java

+9-8
Original file line numberDiff line numberDiff line change
@@ -980,20 +980,21 @@ static Glob singlePatchGlob(Workflow<? extends Revision, ? extends Revision> wor
980980

981981
private Path checkoutSinglePatchBaseline(DestinationReader reader)
982982
throws ValidationException, IOException, RepoException {
983-
// copy the current destination files to the baseline directory
984-
Glob baselineFiles = patchlessDestinationFiles(workflow);
985-
986-
Path baselineWorkdir = Files.createDirectories(workdir.resolve("baseline"));
987-
reader.copyDestinationFilesToDirectory(baselineFiles, baselineWorkdir);
988-
989-
// copy the singlepatch file from the destination to a separate directory
990983
Path singlepatchWorkdir = Files.createDirectories(workdir.resolve("singlepatch"));
991-
reader.copyDestinationFilesToDirectory(singlePatchGlob(workflow), singlepatchWorkdir);
992984
Path singlePatchPath = singlepatchWorkdir.resolve(workflow.fullSinglePatchPath());
993985

986+
// copy the singlepatch file somewhere so we can parse it
987+
reader.copyDestinationFilesToDirectory(singlePatchGlob(workflow), singlepatchWorkdir);
994988
SinglePatch singlePatch =
995989
SinglePatch.fromBytes(
996990
Files.readAllBytes(singlePatchPath));
991+
992+
// copy the current destination files to the baseline directory
993+
Glob baselineFiles = Glob.createGlob(singlePatch.getFileHashes().keySet().asList());
994+
995+
Path baselineWorkdir = Files.createDirectories(workdir.resolve("baseline"));
996+
reader.copyDestinationFilesToDirectory(baselineFiles, baselineWorkdir);
997+
997998
singlePatch.validateDirectory(SinglePatch.filesInDir(baselineWorkdir), reader::getHash);
998999
singlePatch.reverseSinglePatch(
9991000
baselineWorkdir, workflow.getGeneralOptions().getEnvironment());

java/com/google/copybara/util/SinglePatch.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ public static SinglePatch fromBytes(byte[] bytes)
145145
}
146146
}
147147

148-
ImmutableMap<String, String> getFileHashes() {
148+
public ImmutableMap<String, String> getFileHashes() {
149149
return ImmutableMap.copyOf(fileHashes);
150150
}
151151

0 commit comments

Comments
 (0)