1

エンタープライズアプリケーションがあり、scmにはgitを使用しています。さらに、このプロジェクトの基盤は、オープンソースツールであるパブリックgitリポジトリです。

エンタープライズのお客様の場合、インストールプロセスは、a)オープンソースツールをインストールし、b)同じディレクトリ構造のオープンソースツールの上にエンタープライズ機能をインストールします。

デプロイメントの場合、これは問題ありません。開発にとって、それは悪夢です。

2つの複雑で重複するプロジェクトを同じ構造にする方法はありますか?方法はわかりませんが、聞いてみようと思いました。

今、私はそれをこのように設定しています:

  • 1つのディレクトリにあるオープンソースツール
  • 別のエンタープライズコード
  • エンタープライズを(シンボリックリンクを介して)オープンソースディレクトリに「インストール」して、開発/実行/テストできるようにするスクリプト

ここに問題があります。オープンソースリポジトリの変更をコミットする前に、変更を明確に確認できるようにエンタープライズを「アンインストール」する必要があります。(または、何百ものエントリで.gitignoreを管理します)なんて苦痛でしょう。

大きなプロジェクトも...25以上のモジュール、およびEnterpriseEditionでコピーされる100を超えるファイル。多くのパッケージには、エンタープライズに追加のモジュールがあります。

何かアイデアはありますか、それとも私はそれを可能な限りうまくやったことがありますか?

4

2 に答える 2

3

Gitサブモジュールを使用すると、互いに素なgitプロジェクトを維持しながら、別のプロジェクト内で使用できます。エンタープライズバージョンがオープンソースツールの特定のバージョンを指すようにしたまま、オープンソースツールを必要に応じて変更できるため、この場合は便利です。企業を新しいコミットにアップグレードしたい場合も、それは簡単です。

ここに良いリソースがあります。

于 2013-02-28T22:49:23.497 に答える
0

もう1つできることは、オープンソースプロジェクトを別のブランチとしてgitプロジェクトに追加することです。

オープンソースプロジェクトのオープンソースgitリポジトリは、一連のブランチとしてgitプロジェクトに現れます。次に、それをマージすることにより、プロジェクトで組み合わせることができます。

gitは分散バージョンシステムであるため、これはかなり簡単です。

#Add the open source repo as a remote
git remote add -f open_source_git <url to open source git repo>
#Create a local branch to track the remote branch
git branch open_source_master open_source:master
# Combine the two projects
git merge open_source_master

open_source_masterブランチがあり、オープンソースリポジトリを簡単に更新して追跡し、独自のリポジトリを使用しないようにすることができます。

于 2013-03-01T13:34:45.837 に答える