结合composer依赖项的子版本



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

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

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

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

如果我进行导出,我必须进行另一个composer更新。

主要问题是:是否有可能处理像svn:externals这样的composer依赖项?如果我执行签出或导出,subversion应该自己下载依赖项。这可能吗?另外,我希望以后能够手动更新作曲家。

很抱歉,我对composer集成到subversion存储库有点困惑。也许任何人都能解释。

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

之后,您只需要运行composer install来安装上次运行更新时获得的依赖项:

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

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

关于svn的一个注意事项是:externals:虽然在理论上,它们能够与Composer做同样的事情,即"硬编码"(在某种程度上)您在当前存储库中使用的其他存储库的精确修订,但这很少被使用。通常,您将svn:externals指向trunk分支。但这是一个风险:如果你回到早期的修订版,你就不会得到早期版本的依赖关系!您可以将外部使用的修订版包含在svn:externals链接中,但我发现这对于管理上次使用svn(在Composer启动之前)来说相当麻烦。如果你可以使用Composer,我不建议你使用这些。还要注意的是,大多数Composer包都托管在基于Git的存储库平台上,如Github或Bitbucket,因此无论如何都无法将它们作为svn:externals包含在内。

相关内容

  • 没有找到相关文章

最新更新