如何覆盖作曲家存储库源?

时间:2016-01-25 02:53:01

标签: git github composer-php

我正在尝试分叉一个仓库,所以我可以使用自己的代码更新它。我以前做过,但这次似乎缺少了一些东西。 当我将repo路径放在composer存储库列表中时,它通常会检测到它与包匹配并使用我的repo中的包。 这是我的作曲家(例如简化):

{
    "name": "My Project",
    "description": "Project",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "repositories" : [
        {
            "url": "https://github.com/phazei/laravel4-datatables-package.git",
            "type": "git"
        },
        {
            "url": "https://github.com/phazei/cashier.git",
            "type": "git"
        }
    ],
    "require": {
        "bllim/datatables": "dev-master-phazei",
        "laravel/cashier": "dev-test"
    },
    "config": {
        "preferred-install": "dist"
    },
    "minimum-stability": "stable"
}

就我所知,两种要求都被覆盖的方式完全相同。 bllim / datatables从被覆盖的存储库中读取“master-phazei”分支,但收银员似乎完全忽略它。

如果我输入composer show bllim/datatables,它会列出我的回购源代码。但如果我输入composer show laravel/cashier,则表明好像我甚至没有列出我的回购邮件。

是什么导致这种情况?

1 个答案:

答案 0 :(得分:1)

我又去了https://getcomposer.org/doc/05-repositories.md#loading-a-package-from-a-vcs-repository

我注意到它说包装名称需要匹配,否则它不会起作用。我直接从主分支克隆它,所以我没有理由怀疑它不匹配,但它似乎是从" laravel / cashier"到" laravel / new-cashier"。这与包装名称不匹配,所以它不知道它是那个。 Packagist不会查看任何更新的软件包名称。所以我不得不将我的叉子恢复到原来的名称并且有效。