Composer: リポジトリから特定のコミットをチェックアウトすると、ブランチの最上位のコミットにあるcomposer.jsonから要件が誤って解決されます

作成日 2015年02月04日  ·  3コメント  ·  ソース: composer/composer

タグのない古いバージョンのライブラリを要求しようとしています。 リポジトリは次のように定義されています。

    "repositories": [
        { "type": "vcs", "url": "https://github.com/nette/nette.git" }
    ],
    "require": {
        "nette/nette": "dev-master#b8ca5b82d407453b8cf26ce08a36ee698452d000"
    },

コミットはブランチdev-masterに存在し、composer.json要件なしで存在しますが、 composer installでエラーが発行され、パッケージがdev-master最上位のコミットからの要件を解決することを示唆します。 dev-masterブランチ:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - nette/nette dev-master requires nette/application >=2.3.0 -> no matching package found.
    - nette/nette dev-master requires nette/application >=2.3.0 -> no matching package found.
    - Installation request for nette/nette dev-master#b8ca5b82d407453b8cf26ce08a36ee698452d000 -> satisfiable by nette/nette[dev-master].

Composerのバージョンは07c644ac229a21df80180598d8bb9aaba232eecbです

最も参考になるコメント

これは、composerがその特定のハッシュ内のcomposer.jsonファイルについて知らないためです。 Packagistは、dev-masterの最新のcomposer.jsonのみを保存します。 Composerは、その特定のコミットのcomposer.jsonに何があるかを判別できません。 それを判別できるようにするには、gitクローンが必要です。 正当な理由により、これはサポートされていません。#599を参照してください。 唯一のオプションは、このコミットでロックファイルを作成することです。

全てのコメント3件

これは、composerがその特定のハッシュ内のcomposer.jsonファイルについて知らないためです。 Packagistは、dev-masterの最新のcomposer.jsonのみを保存します。 Composerは、その特定のコミットのcomposer.jsonに何があるかを判別できません。 それを判別できるようにするには、gitクローンが必要です。 正当な理由により、これはサポートされていません。#599を参照してください。 唯一のオプションは、このコミットでロックファイルを作成することです。

はい、詳細については、 https: //getcomposer.org/doc/04-schema.md#package -links(少しスクロールする必要があります)の青いメモを参照してください。

OK、確かに、説明してくれてありがとう。

このページは役に立ちましたか?
0 / 5 - 0 評価