Merge pull request #2189 from owncloud/versioning_sync_client

fix versioning for the sync client - distinguish between touch and write operation
This commit is contained in:
Bernhard Posselt 2013-03-08 03:05:28 -08:00
commit 0525bbd73c
2 changed files with 18 additions and 2 deletions

View File

@ -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');

View File

@ -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) {