diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php index 20611c61ec7a7b2ae9303279b6167a0798bd6534..f99e26a0915dffb555aacfe5de62099512f857ab 100644 --- a/apps/files_versions/lib/versions.php +++ b/apps/files_versions/lib/versions.php @@ -156,11 +156,18 @@ class Storage { /** * rename versions of a file */ - public static function rename($oldpath, $newpath) { - list($uid, $oldpath) = self::getUidAndFilename($oldpath); - list($uidn, $newpath) = self::getUidAndFilename($newpath); + public static function rename($old_path, $new_path) { + list($uid, $oldpath) = self::getUidAndFilename($old_path); + list($uidn, $newpath) = self::getUidAndFilename($new_path); $versions_view = new \OC\Files\View('/'.$uid .'/files_versions'); $files_view = new \OC\Files\View('/'.$uid .'/files'); + + // if the file already exists than it was a upload of a existing file + // over the web interface -> store() is the right function we need here + if ($files_view->file_exists($newpath)) { + return self::store($new_path); + } + $abs_newpath = $versions_view->getLocalFile($newpath); if ( $files_view->is_dir($oldpath) && $versions_view->is_dir($oldpath) ) {