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:
commit
0525bbd73c
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue