Upgrade/Install: Add a conditional to facilitate testing of the Rollbacks feature project.
The [https://make.wordpress.org/core/2021/02/19/feature-plugin-rollback-update-failure/ Rollback Update Failure feature project] creates a temporary backup of plugins and themes before updating. This aims to make the update process more reliable and ensure that if a plugin or theme update fails, the previous version can be safely restored. If the [https://wordpress.org/plugins/rollback-update-failure/ Rollback Update Failure plugin] is installed, `WP_Upgrader::install_package()` will 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, which is instrumental in creating a temporary backup without a delay. If the renaming failed, it falls back to `copy_dir()` WP function. This conditional aims to facilitate broader testing of the feature. It is temporary, until the plugin is merged into core. Follow-up to [53578], [54484]. Props afragen, pbiron, costdev, davidbaumwald, audrasjb, jrf, SergeyBiryukov. See #56057. Built from https://develop.svn.wordpress.org/trunk@54643 git-svn-id: http://core.svn.wordpress.org/trunk@54195 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
8ad53487bf
commit
97ba08426d
|
@ -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 );
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue