@@ -980,20 +980,21 @@ static Glob singlePatchGlob(Workflow<? extends Revision, ? extends Revision> wor
980
980
981
981
private Path checkoutSinglePatchBaseline (DestinationReader reader )
982
982
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
990
983
Path singlepatchWorkdir = Files .createDirectories (workdir .resolve ("singlepatch" ));
991
- reader .copyDestinationFilesToDirectory (singlePatchGlob (workflow ), singlepatchWorkdir );
992
984
Path singlePatchPath = singlepatchWorkdir .resolve (workflow .fullSinglePatchPath ());
993
985
986
+ // copy the singlepatch file somewhere so we can parse it
987
+ reader .copyDestinationFilesToDirectory (singlePatchGlob (workflow ), singlepatchWorkdir );
994
988
SinglePatch singlePatch =
995
989
SinglePatch .fromBytes (
996
990
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
+
997
998
singlePatch .validateDirectory (SinglePatch .filesInDir (baselineWorkdir ), reader ::getHash );
998
999
singlePatch .reverseSinglePatch (
999
1000
baselineWorkdir , workflow .getGeneralOptions ().getEnvironment ());
0 commit comments