Skip to content
Snippets Groups Projects
Commit 0525bbd7 authored by Bernhard Posselt's avatar Bernhard Posselt
Browse files

Merge pull request #2189 from owncloud/versioning_sync_client

fix versioning for the sync client - distinguish between touch and write operation
parents 308c8509 8d26400c
No related branches found
No related tags found
No related merge requests found
......@@ -61,7 +61,7 @@ class Storage {
}
return false;
}
/**
* write to the database how much space is in use for versions
*
......@@ -82,6 +82,14 @@ class Storage {
*/
public static function store($filename) {
if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
// if the file gets streamed we need to remove the .part extension
// to get the right target
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if ($ext === 'part') {
$filename = substr($filename, 0, strlen($filename)-5);
}
list($uid, $filename) = self::getUidAndFilename($filename);
$files_view = new \OC\Files\View('/'.$uid .'/files');
......
......@@ -245,7 +245,14 @@ class View {
if (!is_null($mtime) and !is_numeric($mtime)) {
$mtime = strtotime($mtime);
}
return $this->basicOperation('touch', $path, array('write'), $mtime);
$hooks = array('touch');
if (!$this->file_exists($path)) {
$hooks[] = 'write';
}
return $this->basicOperation('touch', $path, $hooks, $mtime);
}
public function file_get_contents($path) {
......@@ -596,6 +603,7 @@ class View {
if ($path == null) {
return false;
}
$run = $this->runHooks($hooks, $path);
list($storage, $internalPath) = Filesystem::resolvePath($absolutePath . $postFix);
if ($run and $storage) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment