diff options
| author | Christian Weiske <cweiske@cweiske.de> | 2012-03-26 23:46:54 +0200 |
|---|---|---|
| committer | Christian Weiske <cweiske@cweiske.de> | 2012-03-26 23:46:54 +0200 |
| commit | f7101de3d20753dafe8e02f4e43112e2e208b8d7 (patch) | |
| tree | 1f6aaca9d77726cbb9e8cf653c1c034beb62fd52 | |
| parent | bfa1501efa1a49893208c794ea262a075b13fc1d (diff) | |
| download | phorkie-f7101de3d20753dafe8e02f4e43112e2e208b8d7.tar.gz phorkie-f7101de3d20753dafe8e02f4e43112e2e208b8d7.zip | |
forking works now
| -rw-r--r-- | src/Phorkie/Repositories.php | 7 | ||||
| -rw-r--r-- | www/fork.php | 19 |
2 files changed, 25 insertions, 1 deletions
diff --git a/src/Phorkie/Repositories.php b/src/Phorkie/Repositories.php index 6582ae8..3afe8c5 100644 --- a/src/Phorkie/Repositories.php +++ b/src/Phorkie/Repositories.php @@ -13,7 +13,12 @@ class Repositories */ 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(); diff --git a/www/fork.php b/www/fork.php new file mode 100644 index 0000000..5004945 --- /dev/null +++ b/www/fork.php @@ -0,0 +1,19 @@ +<?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 |
