5

私は現在、SVNを使用するsymfony1.4からGitを使用するSymfony2に移行しています。私はGitを初めて使用し、1週間から多くのドキュメントを読んでいますが、残念ながら、以前SVNで作業していたように作業する方法を見つけることができません。確かに、これら2つの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」や「」にファイルを追加すると、プロジェクトリポジトリにsf1.4で行ったように競合を発生させずにSf2ソースを含めることができません。プロジェクトをテストするか、sf2ソースを更新したい。
  • バンドルに独自のリポジトリを持たせ、それらで作業し、ブランチを切り替え、プロジェクトを切り替えずにコミットしてプッシュ/プルし、バンドルソースを個別にコミットしてプッシュし、メインプロジェクトのサブモジュールを更新できるようにしたいと思います。

これを行うための最良のアプローチは何でしょうか?

4

2 に答える 2

1

すでに使用しているのか、一般的な意味で「サブモジュール」を指しているのかはわかりませんでしたが、すべてをまとめてプッシュ/プルできるサブモジュールを確認してください。

srcとtestの問題について、ローカルの変更をフォルダーに階層化する場合、ここで説明したように、ローカルブランチを介してそれらを伝播するのが最善の方法です。その質問は一時的なデバッグの変更に関するものでしたが、基本的な原則は引き続き適用されます。

于 2011-04-08T13:02:22.690 に答える
0

混乱があると思います。

srcとtestフォルダーについて話しているので、このリポジトリを使用していると思います:https ://github.com/symfony/symfonyであり、「標準」エディションではありません。この状況では、コンテンツをリポジトリルートではなく、vendor/symfonyフォルダーに配置します。

したがって、サブモジュールを介してバンドルとベンダーを管理することにより、必要な構造を取得できます。

于 2011-04-08T16:40:59.913 に答える