私は2つの密接に関連するJavaプロジェクトをコーディングしています。最初のプロジェクトは、単一の施設で非常に単純なサプライチェーンをシミュレートする単一施設シミュレーターです。2番目のプロジェクトは、より複雑なものをシミュレートするサプライチェーンシミュレーターです。サプライチェーンネットワーク、つまり、施設のいくつかのペアの間に有向エッジを持つグラフとして配置された複数の施設。
最初のプロジェクトは、プロジェクトの高レベルの設計をテストおよび改良するために使用しているという意味で、「おもちゃ」プロジェクトです。 2番目のプロジェクトは、私が仕事の目的で興味を持っている「実際の」プロジェクトです。 2つのプロジェクトの高レベルの設計は同じですが、いくつかの違いがあります。たとえば、「おもちゃ」プロジェクトのDemand
オブジェクトは期間ごとに需要値を生成するだけでよいのに対し、「実際の」プロジェクトのDemand
オブジェクトはプロジェクトは、期間ごとに施設ごとに需要値を生成する必要があります。
現在、「おもちゃ」プロジェクトは独自のGitリポジトリにあります。 「実際の」プロジェクトの実装を開始するときに、「おもちゃ」プロジェクトをフォークする必要がありますか、それとも「おもちゃ」プロジェクトと同じスペースに異なるパッケージとして「実際の」プロジェクトを実装する必要がありますか?
私見この決定は、プロジェクトの意図されたライフサイクルに依存する必要があります。 「おもちゃ」プロジェクトを「実際の」プロジェクトと並行してさらに開発する場合、および「実際の」プロジェクトのリリースを作成するたびに両方のプロジェクトの組み合わせリリースを作成する場合は、1つのリポジトリ優れている。しかし、実際のプロジェクトのライフサイクルを(ほぼ)おもちゃのプロジェクトから完全に切り離したい場合は、2つの別々のリポジトリがおそらくより良い代替手段になります。