我想用subversion管理我的项目,项目需要由作曲家管理的依赖项。
这样做的最佳做法是什么?
我可以将我的composer.json添加到我的主干所需的依赖项。 然后我在我的工作副本中运行一个作曲家更新。 据我所知,我应该从我的主干中排除作曲家创建的文件夹,因为它们不需要复制到回购。这是对的吗?
如果我再办理结账,我必须再次进行作曲家更新。这是对的吗?
如果我做导出,我必须做另一个作曲家更新。
主要问题是:是否可以处理像svn:externals这样的作曲家依赖?如果我做结帐或导出subversion应该自己下载依赖项。那可能吗?另外,我希望以后可以手动更新作曲家。
很抱歉,我对将composer集成到subversion存储库有点困惑。也许任何人都能解释它。
答案 0 :(得分:2)
您将项目的composer.json
和composer.lock
提交到存储库,并在运行vendor
一次后将composer update
文件夹排除在外。
之后,您只运行composer install
来安装上次运行更新时获得的依赖项:
composer install
composer install
运行composer update
的唯一情况是您希望更新依赖项。
关于svn:externals的一个注释:虽然理论上它们能够像Composer一样做,即" hardcoding" (在某种程度上)您在当前存储库中使用的某个其他存储库的确切修订版,这种情况很少使用。通常你将svn:externals指向trunk分支。但这是一个风险:如果你回到早期版本,你就不会得到你的依赖版的早期版本!您可以将外部使用的修订包含在svn:externals链接中,但我发现上次使用SVN(在Composer启动之前的方式)管理起来相当麻烦。如果您可以使用Composer,我建议不要使用这些。另请注意,大多数Composer软件包都托管在基于Git的存储库平台(如Github或Bitbucket)上,因此无论如何都无法将它们包含在svn:externals中。