X-Git-Url: https://git.cweiske.de/phorkie.git/blobdiff_plain/8d29b8e073c9a3795ad7ededf4cb5e8683102162..7b549853080c5768d4da0b086d9b56b4b9d634c5:/src/phorkie/Repository/Post.php diff --git a/src/phorkie/Repository/Post.php b/src/phorkie/Repository/Post.php index fe6858b..39798b5 100644 --- a/src/phorkie/Repository/Post.php +++ b/src/phorkie/Repository/Post.php @@ -116,6 +116,10 @@ class Repository_Post && $file->getContent() != $arFile['content'] ) ) { + $dir = dirname($file->getFullPath()); + if (!is_dir($dir)) { + mkdir($dir, 0777, true); + } file_put_contents($file->getFullPath(), $arFile['content']); $command = $vc->getCommand('add') ->addArgument($file->getFilename()) @@ -134,6 +138,7 @@ class Repository_Post $vc->getCommand('commit') ->setOption('message', '') ->setOption('allow-empty-message') + ->setOption('no-edit') ->setOption( 'author', $sessionData['name'] . ' <' . $sessionData['email'] . '>' @@ -153,10 +158,18 @@ class Repository_Post //FIXME: index changed files only //also handle file deletions $db = new Database(); + $not = new Notificator(); if ($bNew) { $db->getIndexer()->addRepo($this->repo); + $not->create($this->repo); } else { - $db->getIndexer()->updateRepo($this->repo); + $commits = $this->repo->getHistory(); + $db->getIndexer()->updateRepo( + $this->repo, + $commits[count($commits)-1]->committerTime, + $commits[0]->committerTime + ); + $not->edit($this->repo); } } @@ -169,7 +182,15 @@ class Repository_Post if ($_FILES['files']['error'][$num]['upload'] == 0) { return true; } - if ($arFile['content'] != '') { + if (isset($arFile['content']) && $arFile['content'] != '') { + return true; + } + if (isset($arFile['name']) && $arFile['name'] != '') { + //binary files do not have content + return true; + } + if (isset($arFile['delete']) && $arFile['delete'] != '') { + //binary files do not have content return true; } }