*/
public function createNew()
{
- $n = basename(end(glob($this->reposDir . '/*', GLOB_ONLYDIR))) + 1;
+ chdir($this->reposDir);
+ $dirs = glob('*', GLOB_ONLYDIR);
+ sort($dirs, SORT_NUMERIC);
+ $n = end($dirs) + 1;
+ unset($dirs);
+
$dir = $this->reposDir . '/' . $n . '/';
mkdir($dir, 0777);//FIXME
$r = new Repository();
--- /dev/null
+<?php
+/**
+ * Fork a repository
+ */
+namespace Phorkie;
+require_once 'www-header.php';
+$repo = new Repository();
+$repo->loadFromRequest();
+
+$rs = new Repositories();
+$new = $rs->createNew();
+$new->getVc()->getCommand('clone')
+ ->addArgument($repo->repoDir)
+ ->addArgument($new->repoDir)
+ ->execute();
+\copy($repo->repoDir . '/.git/description', $new->repoDir . '/.git/description');
+//FIXME: where to put fork source link?
+redirect($new->getLink('display'));
+?>
\ No newline at end of file