【问题标题】:Handling Symfony2 project and Git branching处理 Symfony2 项目和 Git 分支
【发布时间】:2015-12-09 22:56:18
【问题描述】:

我在 Symfony2 中有一个项目,它在 Git 中维护了几个分支:developtesting 和其他一些。 composer.json 文件在每个分支上都不同,因此我需要一直运行 composer update 来更新依赖项和/或删除可能导致不良行为的旧库或新库。

现在我正在学习并尝试使用 BDD 编写一些测试:Behat + Mink,我不想在 develop 分支上进行这些更改,所以我创建了 testing 并在该分支上进行了所有这些更改但正如我所说,主要问题是在我切换分支时运行composer update

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

【问题讨论】:

    标签: git symfony composer-php phpstorm git-branch


    【解决方案1】:

    我想到了一些不同的事情。有些是最佳实践,有些可能会缩短周转时间,具体取决于您要付出多少努力:

    基本:

    • On .lock down - 确保每个分支都有一个提交的锁定文件。它的right in the Composer documentation 是有原因的。似乎很少有项目喜欢 SemVer,即使是那些项目也会不时潜入重大变化。
    • 具体 在运行作曲家更新时,请确保您针对的是分支之间不同的特定包(例如:composer update doctrine/dbal)。
      • 更好的是,根本不要运行update。这可能会错误地更新您不打算更新的分支中的包。最好使用composer install
    • 为什么不两者兼而有之? - 将您的项目的单独克隆专门用于该分支是否也值得?如果您发现自己经常在这两种情况下工作,请避免切换分支的整个头痛。毕竟,磁盘空间很便宜。
      • 从本地删除所有分支,您感兴趣的分支除外。将 Git Push/Pull 设置为“简单”以避免任何意外提交。

    中等或更高

    • 懒点,去喝杯咖啡 - 考虑一个结帐后挂钩。例如,您可以查看here。享受空闲时间喝杯咖啡,为您的下一个测试绘制地图。
    • Roll Your Own - 安装本地 Satis 实例。在我们的团队添加了一个本地 Satis 实例并镜像我们的主要依赖项后,我注意到我们的项目安装有了显着改善。
    • VM - 将您的项目转换为使用 VM。基于 GUI 的工具(例如 PuPHPetPhansible)可以让您轻松搞定。这不会解决您的作曲家问题,但减少与遥控器同步的往返时间可能值得投入时间。
    • 配置调整 - 在每个分支的基础上更改作曲家的供应商目录。有关详细信息,请参阅this previous answer
      • 注意:由于意外/特定于分支的权限错误等原因,这很可能会给您的测试增加一些复杂性。
    • Platform.sh
      1. 使用 Platform.sh 设置帐户
      2. ???
      3. 利润

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

    【讨论】:

      猜你喜欢
      • 2020-02-16
      • 2013-07-15
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-12
      • 2016-03-25
      相关资源
      最近更新 更多