X-Git-Url: https://git.cweiske.de/phorkie.git/blobdiff_plain/97c4ac59eed8b66b2e7f85d8ac325b063fb8a0ce..8701af280fa5a9c83827cdd0e2ae335d2512a3a7:/www/fork.php diff --git a/www/fork.php b/www/fork.php index cc2ed33..d8a24a2 100644 --- a/www/fork.php +++ b/www/fork.php @@ -3,10 +3,8 @@ * Fork a repository */ namespace phorkie; +$reqWritePermissions = true; require_once 'www-header.php'; -if ($GLOBALS['phorkie']['auth']['secure'] > 0) { - require_once 'secure.php'; -} if ($_SERVER['REQUEST_METHOD'] !== 'POST') { throw new Exception_Input('Forking only possible via POST'); @@ -15,22 +13,9 @@ if ($_SERVER['REQUEST_METHOD'] !== 'POST') { $repo = new Repository(); $repo->loadFromRequest(); -$rs = new Repositories(); -$new = $rs->createNew(); -$vc = $new->getVc(); -\rmdir($new->gitDir);//VersionControl_Git wants an existing dir, git clone not -$vc->getCommand('clone') - //this should be setOption, but it fails with a = between name and value - ->addArgument('--separate-git-dir') - ->addArgument($GLOBALS['phorkie']['cfg']['gitdir'] . '/' . $new->id . '.git') - ->addArgument($repo->gitDir) - ->addArgument($new->workDir) - ->execute(); -\copy($repo->gitDir . '/description', $new->gitDir . '/description'); -foreach (\glob($new->gitDir . '/hooks/*') as $hookfile) { - \unlink($hookfile); -} +$forker = new Forker(); +$new = $forker->forkLocal($repo); //FIXME: where to put fork source link? redirect($new->getLink('display')); -?> \ No newline at end of file +?>