【问题标题】:Composer Private Repository .git-folder keeps being generatedComposer Private Repository .git-folder 不断生成
【发布时间】:2014-03-24 03:24:36
【问题描述】:

我找不到解决方案,所以我在这里寻求帮助。 我在 Bitbucket 上创建了一个私有 Git 存储库,我想在我的作曲家项目中使用它。

到目前为止一切正常。问题是,一个 .git 文件夹不断生成,我真的不想拥有。 (我只想使用私有存储库中的包,仅此而已!)

我在根项目中的 composer.json 如下所示:

{
    ...
    "require": {
        "vendorname/packagename": "*"
    },
    "repositories": [
        "type": "git",
        "url": "git@bitbucket.org:vendor/package.git"
    ]
    ...
    "config": {
    "preferred-install": "dist"
},
"minimum-stability": "dev"
}

我尝试将类型设置为 vcs,但没有更改。会不会是首选安装参数?

如果能提供任何帮助,我将不胜感激。我好像漏掉了什么。

【问题讨论】:

    标签: git repository private composer-php


    【解决方案1】:

    Composer 提供将 Bitbucket 作为特殊源来处理,并自动了解分发下载 url,但这仅适用于“https”存储库 url。

    https://github.com/composer/composer/blob/master/src/Composer/Repository/Vcs/GitBitbucketDriver.php#L36

    所以因为 Composer 不知道如何为 Bitbucket 的“git”协议引用构建下载 url,所以它默认克隆 repo。

    我会说尝试编程这是一个相当困难的挑战,因为在 git 协议中没有官方的“下载”通道,并且从 git 切换到 https 也会很困难,因为 git url 缺少一些创建 https 下载 url 所需的重要信息。没有考虑身份验证的问题。

    如果您可以为您的软件创建一个下载位置并在任何地方托管 ZIP 文件,您就可以在库的 composer.json 文件或根项目的存储库定义中提及这一点。请注意,这将很难维护,因为它是手动完成的。

    更好的解决方案是创建一个 Satis 实例,该实例检查 Bitbucket 存储库并创建它找到的每个标记版本的 ZIP 文件。结果可以托管在私人服务器上。

    【讨论】:

    • 非常感谢您的回答。那么将 .git 留在包文件夹中有什么不好的吗?我是否应该在每次更新时删除它,例如“composer update && rm /path/to/.gitfolder/”?
    • 除非您要将您的文件夹与某些生产系统同步并注意额外的数据,否则该文件夹不会以任何方式伤害您。事实上,一旦第一次同步完成,它会加速更新,因为 Composer 会拉取更新和签出标签。
    猜你喜欢
    • 1970-01-01
    • 2016-03-12
    • 2014-10-13
    • 2021-11-29
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多