如何覆盖作曲家存储库源



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

{
    "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它会显示好像我什至没有列出我的存储库。

什么原因可能导致这种情况?

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

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

最新更新