我正在尝试分叉一个仓库,所以我可以使用自己的代码更新它。我以前做过,但这次似乎缺少了一些东西。 当我将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
,则表明好像我甚至没有列出我的回购邮件。
是什么导致这种情况?
答案 0 :(得分:1)
我又去了https://getcomposer.org/doc/05-repositories.md#loading-a-package-from-a-vcs-repository。
我注意到它说包装名称需要匹配,否则它不会起作用。我直接从主分支克隆它,所以我没有理由怀疑它不匹配,但它似乎是从" laravel / cashier"到" laravel / new-cashier"。这与包装名称不匹配,所以它不知道它是那个。 Packagist不会查看任何更新的软件包名称。所以我不得不将我的叉子恢复到原来的名称并且有效。