2015-09-14 87 views
-1

我在Symfony2中有一个项目,它在Git中维护着几个分支:develop,testing和其他一些项目。文件composer.json在每个分支上都有所不同,所以我需要始终运行composer update以更新依赖关系和/或删除可能导致不需要的行为的旧库或新库。处理Symfony2项目和Git分支

现在我正在学习,并努力写出使用BDD一些测试:贝哈特+水貂,我不希望有一个对develop分支的变化,所以我创造了testing并就分支,但所有这些改变我表示主要问题是在我切换分支时随时运行composer update

哪个是正确的方法来处理这个问题?你会怎么做?有什么建议?我疯了几次运行相同的命令,然后将我的本地代码(Windows主机)上的PHPStorm与远程代码(Linux服务器)同步。想法?

回答

1

想到几件不同的事情。有些不错的练习,其他人可能减轻周转时间,这取决于你想要多少努力发挥:

基础:

  • 在.lock下来 - 确保每个分支都有一个坚定的锁定文件。有一个原因是它的right in the Composer documentation。很少有项目似乎对SemVer很感兴趣,甚至那些可以让时不时突破的项目也能让人感到惊讶。
  • 具体化当运行一个作曲家更新,确保您的目标具体软件包分支(例如:composer update doctrine/dbal)之间的差异。
    • 更好的是,根本不运行update。这可能是错误地更新了你不想要的分支中的软件包。更好地利用composer install
  • 为什么不能同时使用? - 为您的项目专门设立一个单独的克隆可能值得吗?如果你看到自己经常同时在这两个地方工作,那么可以省去切换分支的麻烦。毕竟,磁盘空间很便宜。
    • 从本地删除所有分支,除了你感兴趣的分支。安装Git推/拉'简单'以避免任何意外提交。

中等或更高

  • 偷懒,去喝杯咖啡 - 考虑结帐后挂机。例如,您可以看到here。享受备用的周期来获取一些咖啡,映射我们的下一个测试。
  • 推出自己的 - 安装本地Satis实例。我们注意到在我们的团队添加了一个本地Satis实例并镜像了我们的主要依赖关系之后,我们的项目安装有了显着的改进。
  • VM - 将您的项目转换为使用虚拟机。基于GUI的工具(如PuPHPetPhansible)可以帮助您轻松解决问题。这不会解决你的作曲家问题,但减少与遥控器同步的往返时间可能值得花时间投资。
  • 配置调整 - 以每个分支为基础更改作曲家的供应商目录。有关详细信息,请参阅this previous answer
    • 注:这有增加了一些并发症的测试由于意外/特定分支的权限错误的概率高,等
  • Platform.sh
    1. 设置与Platform.sh
    2. 帐户
    3. ???
    4. 利润

希望以上的一些组合可以帮助您找到一些改进!