Изменить компоновщик git источник для пакета - программирование
Подтвердить что ты не робот

Изменить компоновщик git источник для пакета

Я втягиваю пакет с помощью Composer с этим composer.json:

{
    "require": {
        "torophp/torophp": "dev-master",
    },
}

Когда я запускаю composer install, похоже, он напрямую переносит этот пакет из GitHub.

Я создал вилку этого репо на github с небольшими изменениями. Есть ли способ заставить композитора вытащить мою версию на GitHub вместо оригинала?

4b9b3361

Ответ 1

Если это ваш composer.json

"require": {
  "torophp/torophp": "dev-master"
}

и вы хотите изменить его и вместо этого использовать свою вилку, просто добавьте репозиторий в composer.json следующим образом:

"repositories": [
   {
     "type": "vcs",
     "url": "https://github.com/your-github-username/torophp"
   }
]

Важно. Не меняйте часть "require", она должна продолжать использовать torophp/torophp!

После добавления части "repositories" запустите composer update (или composer.phar update), и композитор затем загрузит вашу вилку (даже если она повторяет "установку torophp/torophp" во время операции).


Обновление (18.09.2014): Как упоминалось в комментариях @efesaid:

Если ваш пакет опубликован в пакете, вам нужно добавить --prefer-source возможность принудительной установки из VCS.


Примечание. Для тех, у кого проблемы с вытаскиванием из источника HTTP (S) (т.е. вы получаете [RuntimeException] Failed to clone https://github.com/your-github-username/torophp, could not read packages from it при попытке обновления), вы можете изменить composer.json для использования протокола git, Для этого измените composer.json следующим образом и запустите composer update снова.
"repositories": [
   {
     "type": "git",
     "url": "git://github.com/your-github-username/torophp.git"
   }
]

Теперь перейдите в vendor/torophp/torophp и запустите git remote -v для двойной проверки, что вы используете нужный источник для репозитория.

Оттуда вы можете зафиксировать изменения в своей вилке и обновить ее с начала (git pull origin master).


Обновить. Чтобы работать с репозиториями private в GitHub, вы должны использовать протокол git, а также должны иметь SSH-ключи для git клиент.

Ссылка на композитор: Загрузка пакета из репозитория VCS