4 * Fork a remote repository.
5 * Displays a URL selection form when multiple git urls have been found
7 require_once 'www-header.php';
11 if (isset($_REQUEST['remote_url'])) {
12 if (substr($_REQUEST['remote_url'], 0, 9) == 'web+fork:') {
13 $_REQUEST['remote_url'] = substr($_REQUEST['remote_url'], 9);
16 $fr = new ForkRemote($_REQUEST['remote_url']);
17 if (false === $fr->parse()) {
20 } else if (false !== ($gitUrl = $fr->getUniqueGitUrl())) {
21 if (isset($_POST['orig_url'])) {
22 $fr->setUrl($_POST['orig_url']);
24 $forker = new Forker();
26 $new = $forker->forkRemote(
27 $gitUrl['url'], $fr->getUrl(), $gitUrl['title']
29 redirect($new->getLink('display', null, true));
30 } catch (\Exception $e) {
31 $error = $e->getMessage();
35 $urls = $fr->getGitUrls();
40 if (is_array($urls)) {
41 foreach ($urls as $group) {
43 if (count($group) > 1) {
44 $selsize += count($group);
52 'remote_url' => isset($_REQUEST['remote_url']) ? $_REQUEST['remote_url'] : '',
55 'urlselsize' => $selsize,