Composer create-project:使用分叉存储库

时间:2014-07-01 09:10:54

标签: wordpress git github composer-php packagist

我正在使用来自Bedrock的精彩Wordpress堆栈Roots.IO来处理我的Wordpress项目。我在原始存储库中创建了一个fork,并根据我的具体情况进行了轻微的自定义,因为开发人员鼓励我们在他们的README文件中进行。

推荐安装Bedrock是通过Composer命令composer create-project roots/bedrock完成的,该命令从Packagist下载包。这是有效的,虽然我需要使用它的分叉版本。

如果我对Composer有了正确的想法,我有几个选择:

将存储库分叉到Packagist

将我的分叉存储库提交给Packagist。这是Packagist不推荐的,但我尝试了一些奇怪的结果(如果需要,我可以详细说明)。

使用自定义存储库-url创建项目

运行create-project命令,并将--repository-url选项设置为我的分叉存储库的URL。这对于以下错误(原始存储库和分叉存储库)都不起作用:

$ composer create-project wpgrouse/wpgrouse-bedrock --repository-url:https://github.com/wpgrouse/wpgrouse-bedrock.git
  

无法下载文件https://github.com/wpgrouse/wpgrouse-bedrock/packages.json

好吧,Bedrock没有这样的文件。

使用原始存储库并每次手动创建修改

由于显而易见的原因,这很糟糕。


你能帮我解决这个问题吗? I posted the question to Bedrock GitHub as well,但由于我非常着急,我也想在这里寻求帮助。

提前谢谢你,Petr!

2 个答案:

答案 0 :(得分:2)

选项2绝对正确。

您需要为composer创建一个存储库以从中提取项目信息。最简单的解决方案是使用由制作Composer的相同人员制作的Satis。 Satis是一个简单的包存储库生成器(就像一个静态Packagist)。

我的satisf.json看起来像那样:

{
    "name": "Your Satis name",
    "homepage": "Url to your satis",
    "repositories": [
        { "type": "vcs", "url": "git@your-git-url:your-user/bedrock.git" }
    ],
    "require-all": true
}

我的基础分支托管在一个私有的gitlab服务器上,但我想你的网址可以在github或bitbucket或其他任何地方。

然后您需要运行满意,以便创建存储库。请参阅github repo,了解如何执行此操作。 Satis将吐出一个包含您的存储库内容的文件夹。我在一个简单的Web服务器上托管我的。由于它只是html,我相信你可以在github页面或者甚至在本地托管它。

然后您就可以致电:

composer create-project roots/bedrock --stability=dev --repository-url=http://your-statis-url <project_name>

如果您有疑问或需要更多详细信息,请不要犹豫。

答案 1 :(得分:0)

对于任何Google调速员,I've received my answer on GitHub from Bedrock creators

  

(选项2)应该是正确的,但看起来Composer文档对于此功能并不是很好。   请参阅:Composer create-project fails on local package repository,composer / composer#1899。基本上你需要在某个地方创建一个本地的packages.json来定义你的fork,然后使用那个packages.json作为--repository-url

我现在可能会坚持手动克隆存储库,即使它不像点击create-project命令那样闪亮。

另外,如果没有更聪明的人,我会在此留下这个答案。

相关问题