diff --git a/src/Handler.php b/src/Handler.php index 740337189bc7b6f915772f8259a1471b2e3f7dfc..9fecb7c5b577ddc9072ea0ca74290f2fe3830156 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -100,9 +100,11 @@ class Handler { foreach ($repository->getRemotes() as $remote) { if ($remote->getName() == 'origin') { if ($remote->getFetchURL() != $uri) { - $remote->setFetchURL($uri); + $repository->getCaller()->execute('remote remove origin'); + } + else { + $originExists = TRUE; } - $originExists = TRUE; break; } } @@ -113,6 +115,7 @@ class Handler { $fs->mkdir($path); $repository->init(); $repository->addRemote('origin', $uri); + $repository->getCaller()->execute('branch --set-upstream-to origin/' . $version . ' ' . $version); } $repository->fetch(); diff --git a/src/Plugin.php b/src/Plugin.php index e1745fd406a2fe58168a2e0bf99d7a4548ca5ea5..cb64a27df0aaf2c2202aa72d373d5ab20491c845 100644 --- a/src/Plugin.php +++ b/src/Plugin.php @@ -44,4 +44,14 @@ class Plugin implements PluginInterface, EventSubscriberInterface { $this->handler->prepareDevProjects($event); } + /** + * Script callback for putting in composer scripts to prepare the project. + * + * @param \Composer\Script\Event $event + */ + public static function prepare($event) { + $handler = new Handler($event->getComposer(), $event->getIO()); + $handler->prepareDevProjects($event); + } + }