X-Git-Url: https://git.cweiske.de/phorkie.git/blobdiff_plain/6c0d5be1b6ec69257b09b97ddfe0405eabe92459..f88c38723e3c807769627aff2866fc3cf5c8472f:/src/phorkie/Repository/Post.php diff --git a/src/phorkie/Repository/Post.php b/src/phorkie/Repository/Post.php index b181b5a..0860cad 100644 --- a/src/phorkie/Repository/Post.php +++ b/src/phorkie/Repository/Post.php @@ -58,7 +58,9 @@ class Repository_Post if ($name == '') { if ($bUpload) { - $name = Tools::sanitizeFilename($_FILES['files']['name'][$num]['upload']); + $name = Tools::sanitizeFilename( + $_FILES['files']['name'][$num]['upload'] + ); } else { $name = $this->getNextNumberedFile('phork') . '.' . $arFile['type']; @@ -102,13 +104,18 @@ class Repository_Post $bCommit = true; } else if ($bUpload) { move_uploaded_file( - $_FILES['files']['tmp_name'][$num]['upload'], $file->getFullPath() + $_FILES['files']['tmp_name'][$num]['upload'], + $file->getFullPath() ); $command = $vc->getCommand('add') ->addArgument($file->getFilename()) ->execute(); $bCommit = true; - } else if ($bNew || (isset($arFile['content']) && $file->getContent() != $arFile['content'])) { + } else if ($bNew + || (isset($arFile['content']) + && $file->getContent() != $arFile['content'] + ) + ) { file_put_contents($file->getFullPath(), $arFile['content']); $command = $vc->getCommand('add') ->addArgument($file->getFilename()) @@ -117,8 +124,6 @@ class Repository_Post } } - $commitmsg = "phorkie commit"; - if (isset($sessionData['identity'])) { $notes = $sessionData['identity']; } else { @@ -127,13 +132,19 @@ class Repository_Post if ($bCommit) { $vc->getCommand('commit') - ->setOption('message', $commitmsg) - ->setOption('author', $sessionData['name'].' <'.$sessionData['email'].'>') + ->setOption('message', '') + ->setOption('allow-empty-message') + ->setOption('no-edit') + ->setOption( + 'author', + $sessionData['name'] . ' <' . $sessionData['email'] . '>' + ) ->execute(); //FIXME: git needs ref BEFORE add //quick hack until http://pear.php.net/bugs/bug.php?id=19605 is fixed + //also waiting for https://pear.php.net/bugs/bug.php?id=19623 $vc->getCommand('notes --ref=identity add') - ->setOption('force') + ->setOption('force') ->setOption('message', "$notes") ->execute(); $bChanged = true; @@ -143,10 +154,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); } } @@ -174,15 +193,14 @@ class Repository_Post $vc->getCommand('init') //this should be setOption, but it fails with a = between name and value ->addArgument('--separate-git-dir') - ->addArgument($GLOBALS['phorkie']['cfg']['gitdir'] . '/' . $repo->id . '.git') + ->addArgument( + $GLOBALS['phorkie']['cfg']['gitdir'] . '/' . $repo->id . '.git' + ) ->addArgument($repo->workDir) ->execute(); - foreach (glob($repo->gitDir . '/hooks/*') as $hookfile) { - unlink($hookfile); - } - - touch($repo->gitDir . '/git-daemon-export-ok'); + $rs = new Repository_Setup($repo); + $rs->afterInit(); return $repo; }