mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
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. git-svn-id: https://develop.svn.wordpress.org/trunk@54643 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
e0f63b46d4
commit
04e8bb4bb5
@ -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 );
|
||||
|
||||
Loading…
Reference in New Issue
Block a user