Subversion与作曲家依赖关系相结合

时间:2015-03-20 17:03:36

标签: svn dependencies composer-php

我想用subversion管理我的项目,项目需要由作曲家管理的依赖项。

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

运行composer update的唯一情况是您希望更新依赖项。

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

相关问题