Git fetch+reset instead of clean+fetch+merge (#2625)

Fix https://github.com/FreshRSS/FreshRSS/issues/2619
Avoid potentially dangerous git clean, and use more robust fetch + reset
strategy instead
pull/2626/head
Alexandre Alapetite 5 years ago committed by GitHub
parent 6a317d876c
commit c277e15141
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 18
      app/Controllers/updateController.php

@ -29,20 +29,22 @@ class FreshRSS_update_Controller extends Minz_ActionController {
public static function gitPull() {
$cwd = getcwd();
chdir(FRESHRSS_PATH);
$output = array();
$output = '';
$return = 1;
try {
exec('git clean -f -d -f', $output, $return);
exec('git fetch', $output, $return);
if ($return == 0) {
exec('git pull --ff-only', $output, $return);
} else {
$line = is_array($output) ? implode('; ', $output) : '' . $output;
Minz_Log::warning('git clean warning:' . $line);
exec('git reset --hard FETCH_HEAD', $output, $return);
}
} catch (Exception $e) {
Minz_Log::warning('git pull error:' . $e->getMessage());
Minz_Log::warning('Git error:' . $e->getMessage());
if ($output == '') {
$output = $e->getMessage();
}
$return = 1;
}
chdir($cwd);
deleteInstall();
$line = is_array($output) ? implode('; ', $output) : '' . $output;
return $return == 0 ? true : 'Git error: ' . $line;
}
@ -52,6 +54,8 @@ class FreshRSS_update_Controller extends Minz_ActionController {
Minz_Error::error(403);
}
include_once(LIB_PATH . '/lib_install.php');
invalidateHttpCache();
$this->view->update_to_apply = false;

Loading…
Cancel
Save