0

当我通过存储库配置中的 vcs 从 BitBucket (git repo) 安装依赖项时,它会克隆 repo。然后,当我提交我的父项目时,它不会提交文件,只是对依赖项 repo 的链接引用。

我如何能

a) 在父 git repo 中提交这些文件。以便它们出现在 BitBuckets 界面(以及其他克隆或下载的 zip 文件)中

b)告诉作曲家下载依赖的zip文件而不是克隆repo。我在 composer.json 中指定了 "preferred-install": "dist" 但它什么也没做。注意:这是一个私人存储库。

4

1 回答 1

2

首先,您不应该编辑和/或提交在/vendor目录(或您定义为该目录的位置)中创建的存储库。

通常的情况是您包含来自其他人的库,并且您不应该拥有外部存储库的提交权限。如果您想进行更改或实施功能,可能会有诸如拉取请求、问题跟踪器等工作流。要获取更新,您等待新版本出现,然后调用composer update.

相同的规则适用于您自己的库。您应该注意到,当您不/vendor通过主项目中的 a 排除目录时.gitignore,Composer 克隆的任何远程存储库都将被视为 git 子模块。我猜想(对他们没有经验)那时将适用具有子模块的通常规则。

但我建议不要那样发展。你真的应该有两个不同的存储库,每个都可以独立工作——你的库应该与主项目分开开发,任何开发都可以推送到 BitBucket。然后,您可以使用 Composer 更新供应商目录。

现在 ZIP 下载:如果存储库托管在 Github,Composer 有一个特殊情况处理。Github 提供了一个接口来下载存储库的 ZIP 球,其中标签、分支或提交 ID 作为密钥。这些下载是全球可读的,因此不存在身份验证问题。

您自己的库也可以为该版本的 ZIP 文件提供下载位置。但是,如果您手动执行此操作,要确保始终正确维护它是一件很麻烦的事情。我建议您为此使用软件:Satis详细说明)。

Satis 创建至少两个静态文件,您需要将它们托管在可从您的开发机器访问的网络服务器上,并且还可以选择为它在您的存储库中找到的每个标签创建 ZIP 文件。

然后,您可以将主项目中存储库的手动引用更改为指向该 Satis 托管网络服务器的单个指针。

每当您在其中一个存储库中创建新标签时,您都会再次运行 Satis 以获取新信息并创建新的 ZIP 文件。

仅当您提供 ZIP 下载位置时,您才会体验到该preferred-install=dist选项的不同。如果没有下载位置,Composer 将始终克隆原始存储库。

于 2013-09-27T19:25:25.410 回答