diff --git a/wp-admin/includes/class-wp-upgrader.php b/wp-admin/includes/class-wp-upgrader.php index 50309630dc..a2b2c9ed06 100644 --- a/wp-admin/includes/class-wp-upgrader.php +++ b/wp-admin/includes/class-wp-upgrader.php @@ -594,7 +594,23 @@ class WP_Upgrader { } // Copy new version of item into place. - $result = copy_dir( $source, $remote_destination ); + if ( class_exists( 'Rollback_Update_Failure\WP_Upgrader' ) + && function_exists( '\Rollback_Update_Failure\move_dir' ) + ) { + /* + * If the {@link https://wordpress.org/plugins/rollback-update-failure/ Rollback Update Failure} + * feature plugin is installed, use the move_dir() function from there for better performance. + * Instead of copying a directory from one location to another, it uses the rename() PHP function + * to speed up the process. If the renaming failed, it falls back to copy_dir(). + * + * This condition aims to facilitate broader testing of the Rollbacks (temp backups) feature project. + * It is temporary, until the plugin is merged into core. + */ + $result = \Rollback_Update_Failure\move_dir( $source, $remote_destination ); + } else { + $result = copy_dir( $source, $remote_destination ); + } + if ( is_wp_error( $result ) ) { if ( $args['clear_working'] ) { $wp_filesystem->delete( $remote_source, true ); diff --git a/wp-includes/version.php b/wp-includes/version.php index bb7b107bd8..47cc0007e0 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.2-alpha-54642'; +$wp_version = '6.2-alpha-54643'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.