2011-04-08 85 views
5

我目前正在从使用SVN的symfony 1.4移动到使用Git的Symfony2。我是Git的新手,并且自从一周以来阅读了大量文档,但不幸的是,我无法找到像以前一样使用SVN工作的方式。事实上,我明白这两种SCM的做法是不同的。与Git的Symfony2项目:最佳方法?

让我们解释一下我如何使用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”中,并在其根,所以我的项目库不能包含Sf2的来源我sf1.4做,而不会产生冲突,如果我添加了一个“测试”文件夹一些文件在'src'和/或'测试'到我的项目中,或者想要更新sf2源文件。
  • 我希望我的软件包拥有自己的软件仓库,能够在分支上进行切换,提交和推/拉,而无需切换项目,独立提交并推送软件包源,然后更新我的主项目子模块。

什么是最好的方法来做到这一点?

回答

0

我觉得有一个困惑。

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

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

1

我不清楚你是否已经在使用它们,或者只是指一般意义上的“子模块”,但检查出submodules是为了保持一切,但能够独立推/拉。

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

相关问题