与Git的Symfony2项目:最佳方法?

时间:2011-04-08 11:55:01

标签: git symfony

我目前正在使用Git从使用SVN的symfony 1.4转移到Symfony2。我是Git的新手,自从一周以来已经阅读了很多文档,但不幸的是,我无法找到一种工作方式,因为我之前使用过SVN。实际上,我理解这两种SCM的方法不同。

让我解释一下我如何使用sf1.4和SVN。我的存储库结构是这样的:

root    /* Main repository */
  branches
  tags
  trunk
    apps
      backend
      frontend
    cache
    [...]
    lib
      [...]
      vendor
        symfony    /* SVN external to symfony sources */
    log
    plugins
      sfThemePlugin    /* SVN external to sfThemePlugin */
      xxMyPlugin    /* SVN external to a plugin repository I develop */
    test
    web

通过这种方式,我能够:

  • 使用供应商,插件和我自己的插件在我最喜欢的IDE中加载整个项目
  • 能够从各自的存储库更新symfony,插件和其他供应商
  • 使用我自己的插件并在不切换项目的情况下提交它们

现在我想对Symfony2项目和Git做同样的事情。问题是:

  • Sf2 Git存储库在其根目录中包含一个'src'和一个'test'文件夹,因此我的项目存储库不能包含Sf2源代码,就像我在sf1.4中所做的那样,如果我在'src'中添加一些文件而不会产生冲突/或'测试'到我的项目或想要更新sf2源。
  • 我希望我的软件包拥有自己的存储库,能够处理它们,切换分支,提交和推/拉而无需切换项目,提交和独立推送软件包源,然后更新我的主项目子模块。

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

2 个答案:

答案 0 :(得分:1)

我不清楚你是否已经在使用它们,或者仅仅是指一般意义上的“子模块”,但请查看submodules以保持所有内容,但能够独立推/拉。< / p>

对于src和测试问题,如果要将本地更改分层到文件夹中,最好的方法是通过本地分支传播它们,正如我所描述的here。这个问题是临时调试更改,但基本原则仍然适用。

答案 1 :(得分:0)

我认为存在困惑。

当你在谈论src和测试文件夹时,我猜你正在使用这个repo:https://github.com/symfony/symfony而不是“标准”版本。在这种情况下,请不要将内容放在存储库根目录中,而是放在vendor / symfony文件夹中。

因此,您将通过子模块管理捆绑包和供应商,从而获得所需的结构。