私は自分のプロジェクトを維持するためにFossil-SCMを使用しています。私はチームで働いていないので、通常は非常に直線的な開発ブランチを持っています:1.0-> 1.1-> 1.2
タスクが関連するプロジェクトに与えられようとしている1つのプロジェクトがある場合、手順はどうなるのだろうと思います。そして、それによって最初のプロジェクトを時代遅れにレンダリングします。ほとんどのコードを書き直しがちですが、コードを既に作成したことを覚えていない場合でも、コードをアーカイブしたままにしておきたいと思います。そして、私はむしろ死んでいるだけの化石レポを持っていません。マージできますか?これを処理する適切な方法ですか?
たとえば、HTMLページをフォーマットするために、コードはExcelファイルからデータを抽出していました。今、私は私の雇用主が彼らのExcelスプレッドシートをデータベースに移動して冗長性を減らし、効率を上げ、そしてやる気を増すことを確信しました。データベースを使用してプリフォームするためにフープをジャンプする必要がない論理クエリを作成できるようになったので、Excelファイルを最初に操作した余分なvbsファイルは必要ありません。技術的には、既存のコードの一部を現在の新しいプロジェクトに移植します。
すでに独自のトランクを持っているので、別のプロジェクトのトランクをこれに結合することをお勧めします。どうすれば正確にできますか?
私のツリーは次のようになると思います。この逆ツリーに似たソフトウェア分岐の例はこれまで見たことがありません。
プロジェクトをマージする最善の方法は、プロジェクトの履歴をどのように管理するか、およびプロジェクトが個別に進化し続けることを期待するかどうかによって多少異なります。
考慮すべき非常に良いテクニックは、サブモジュールのテクニックでしょう。 Gitとsvnにはこの概念(svnでは外部と呼ばれます)がありますが、残念ながらFossilにはないようです( https://www.mail-archive.com/[email protected] /msg14798.html )。
ただし、別のプロジェクトでプロジェクトをDEPENDすることができ、参照しているプロジェクトで使用する他のプロジェクトからのブランチ、タグ、または個別のコミットを選択するだけという考えです。
コードの束を持ち上げるだけで、履歴を気にしない場合は、新しいコードを含むフォルダーを追加して、コミットするだけです。
2番目のプロジェクトのコードを最初のプロジェクトにマージし、履歴を保持したい場合は、少なくともgitを使用して、git mergeを使用できます( https://saintgimp.org/2013/01/22/mergingを参照)。 -two-git-repositories-into-one-repository-without-losing-file-history / の例)。 gitを使用すると、他のリポジトリをデータのソースとしてマージできるようになります(これは基本的にgit pullが機能する方法です)。 Fossilマージがこの方法で使用できるかどうかを知るには、Fossilについて十分に知りません。