diff options
| author | 2019-11-02 13:38:04 +0100 | |
|---|---|---|
| committer | 2019-11-02 13:38:04 +0100 | |
| commit | c277e15141b99cdcb392f4a32126757d58b44423 (patch) | |
| tree | d4a15c82238fd59f79bf83e68bac3fb1908c5074 /app/Controllers/updateController.php | |
| parent | 6a317d876c1da6243f212c9c2967cd44179762d1 (diff) | |
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
Diffstat (limited to 'app/Controllers/updateController.php')
| -rw-r--r-- | app/Controllers/updateController.php | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/app/Controllers/updateController.php b/app/Controllers/updateController.php index ebe5e4cc8..cc3aef9fd 100644 --- a/app/Controllers/updateController.php +++ b/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; |
