颠覆结合作曲家依赖

Subversion in combination with composer dependencies

我想用 subversion 管理我的项目,并且该项目需要由 composer 管理的依赖项。

这样做的最佳做法是什么?

我可以将具有所需依赖项的 composer.json 添加到我的 t运行k。 然后我 运行 在我的工作副本中更新作曲家。 据我所知,我应该从我的 t运行k 中排除 composer 创建的文件夹,因为它们不需要复制到 repos 中。这是正确的吗?

如果我再次结帐,我必须再次进行作曲家更新。这是正确的吗?

如果我做导出,我必须做另一个作曲家更新。

主要问题是:是否可以像 svn:externals 那样处理作曲家依赖项?如果我进行结帐或导出颠覆应该自行下载依赖项。那可能吗?另外,我希望稍后能够手动进行作曲家更新。

抱歉,我对将 composer 集成到 subversion 存储库中感到有点困惑。也许任何人都可以解释它。

您将项目的 composer.jsoncomposer.lock 都提交到您的存储库中并排除 vendor 文件夹被提交 - 在您 运行 composer update一次。

在那之后,您只需要 运行 composer install 就可以准确安装上次 运行ning 更新时获得的依赖项:

  • 从 SVN 结帐 -> composer install
  • 从 SVN 获取更新 -> composer install

您 运行 composer update 的唯一情况是当您想要更新依赖项时。

还有一个关于 svn:externals 的说明:虽然理论上它们能够做与 Composer 相同的事情,即 "hardcoding"(在某种程度上)您正在使用的其他一些存储库的精确修订您当前的存储库,这很少被使用。通常你将你的 svn:externals 指向 t运行k b运行ch。但这是有风险的:如果您返回到较早的修订版,您将无法获得较早版本的依赖项!您可以将外部使用的修订包含在 svn:externals link 中,但我发现这在我上次使用 SVN 时(在 Composer 启动之前的方式)管理起来相当麻烦。如果您可以改用 Composer,我不建议您使用这些。另请注意,大多数 Composer 软件包都托管在基于 Git 的存储库平台上,例如 Github 或 Bitbucket,因此无论如何都无法将它们包含为 svn:externals。