Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-03-08 15:05:28 +0400
committerBernhard Posselt <nukeawhale@gmail.com>2013-03-08 15:05:28 +0400
commit0525bbd73c9015499ba92d1ac654b980aaca35b2 (patch)
tree9038772de322c4e61b899d2dc188d9bb42953532
parent308c85090e8815339a24e4032466ffddfc0240e2 (diff)
parent8d26400cb5427763b0562da8799bea52f4eae21e (diff)
Merge pull request #2189 from owncloud/versioning_sync_client
fix versioning for the sync client - distinguish between touch and write operation
-rw-r--r--apps/files_versions/lib/versions.php10
-rw-r--r--lib/files/view.php10
2 files changed, 18 insertions, 2 deletions
diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php
index c37133cf32c..20611c61ec7 100644
--- a/apps/files_versions/lib/versions.php
+++ b/apps/files_versions/lib/versions.php
@@ -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');
diff --git a/lib/files/view.php b/lib/files/view.php
index 4ed3234552e..19f33ad64a2 100644
--- a/lib/files/view.php
+++ b/lib/files/view.php
@@ -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) {