私はGitに移行しているSVNのプロジェクトを持っています。プロジェクトは「コア」製品(トランクの下)で構成され、同じリポジトリ内で分岐され、製品をロールアウトする個々のクライアントごとにカスタマイズするための開始点として使用されます。
これらはトランクにマージされることは決してないため、実際のブランチではないように思われます。また、「トランク」リポジトリにリンクしている履歴とプルする機能を備えた独自のリポジトリに住んでいる方がよいでしょう。必要に応じてトランクからの変更で(もちろんgitで簡単に実行できます)。
少し複雑なのは、あるクライアントが独自のプロジェクトのブランチを持っていることです。これは、ある時点でそのクライアントのメインブランチにマージされるという意味で「実際の」ブランチです。
うまくいけば、物事をより明確にするために、SVN構造は次のとおりです。
- 「プロジェクト」リポジトリ
- トランク
- ブランチ
- Client1(Trunk v100から分岐)
- Client2(Trunk v150から分岐)
- Client2-ブランチ(Client2 v200から分岐)
- Client3(Trunk v150から分岐)
そして、私が行きたい構造は
「プロジェクト」リポジトリ
Client1リポジトリ(SHA123からフォーク)
Client2リポジトリ(SHA456からフォーク)
- Client2-ブランチ(SHA456789から分岐)
Client3リポジトリ(SHA789からフォーク)
誰かがこれを行うための良い方法をお勧めできますか?私はGitの初心者ではなく、フィルターブランチを知っています。この構造を取得し、可能な限り多くの履歴を保持するためにどのような方法をとるべきかわかりません。
ありがとう