5

我目前正在从使用 SVN 的 symfony 1.4 迁移到使用 Git 的 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' 文件夹,因此如果我在 'src' 和/或 '测试'到我的项目或想要更新 sf2 源。
  • 我希望我的捆绑包拥有自己的存储库,并且能够在它们上工作、切换分支、提交和推送/拉取,而无需切换项目、独立提交和推送捆绑包源,然后更新我的主要项目子模块。

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

4

2 回答 2

1

我不清楚您是否已经在使用它们,或者只是指一般意义上的“子模块”,但请查看子模块以将所有内容放在一起但能够独立推/拉。

对于您的 src 和测试问题,如果您想将本地更改分层到一个文件夹中,最好的方法是通过本地分支传播它们,正如我在此处描述的那样。该问题是针对临时调试更改的,但基本原则仍然适用。

于 2011-04-08T13:02:22.690 回答
0

我认为有一个混乱。

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

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

于 2011-04-08T16:40:59.913 回答