{
$new = $this->fork($repo->gitDir);
\copy($repo->gitDir . '/description', $new->gitDir . '/description');
+ $this->index($new);
return $new;
}
- public function forkRemote($url)
+ public function forkRemote($cloneUrl, $originalUrl)
{
- $new = $this->fork($url);
+ $new = $this->fork($cloneUrl);
file_put_contents(
$new->gitDir . '/description',
- 'Fork of ' . $url
+ 'Fork of ' . $originalUrl
);
+ $this->index($new);
return $new;
}
$rs = new Repositories();
$new = $rs->createNew();
$vc = $new->getVc();
- \rmdir($new->gitDir);//VersionControl_Git wants an existing dir, git clone not
+
+ //VersionControl_Git wants an existing dir, git clone not
+ \rmdir($new->gitDir);
+
$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(
+ $GLOBALS['phorkie']['cfg']['gitdir'] . '/' . $new->id . '.git'
+ )
->addArgument($pathOrUrl)
->addArgument($new->workDir)
->execute();
foreach (\glob($new->gitDir . '/hooks/*') as $hookfile) {
\unlink($hookfile);
}
+
return $new;
}
+
+ protected function index($repo)
+ {
+ $db = new Database();
+ $db->getIndexer()->addRepo($repo);
+ }
}
?>