6 $pageRequiresLogin = '1';
7 require_once 'www-header.php';
9 if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
10 throw new Exception_Input('Forking only possible via POST');
13 $repo = new Repository();
14 $repo->loadFromRequest();
16 $rs = new Repositories();
17 $new = $rs->createNew();
19 \rmdir($new->gitDir);//VersionControl_Git wants an existing dir, git clone not
20 $vc->getCommand('clone')
21 //this should be setOption, but it fails with a = between name and value
22 ->addArgument('--separate-git-dir')
23 ->addArgument($GLOBALS['phorkie']['cfg']['gitdir'] . '/' . $new->id . '.git')
24 ->addArgument($repo->gitDir)
25 ->addArgument($new->workDir)
27 \copy($repo->gitDir . '/description', $new->gitDir . '/description');
28 foreach (\glob($new->gitDir . '/hooks/*') as $hookfile) {
32 //FIXME: where to put fork source link?
33 redirect($new->getLink('display'));