1

私の会社には、中央のCVSサーバーがあります。まだ積極的にサポートされている製品バージョンごとに異なるブランチがあります。ローカルでは、基本的にhttp://undefinedvalue.com/2010/07/02/workflow-remote-cvs-local-gitのアプローチに従ってGitを使用しています(git cvsは非常に長い時間がかかり、エラーで停止しました:- /)。

CVSブランチごとに個別のGitリポジトリを使用しています(各CVSブランチは異なるディレクトリでチェックアウトされています)。たとえば、ディレクトリ〜/ dev / our_product / v2、〜/ dev / our_product / v3、〜/ dev / our_product / v4、および〜/ dev / our_product / mainがあり、それぞれディレクトリに.gitが直接含まれています。マスターブランチはCVSに従います(定期的にcvsupdateを実行してからgitcommitを実行することにより、手動で更新します)。

私は今、これらすべてのGitリポジトリを1つにまとめることを考えています。2つの異なるリポジトリからの2つのブランチを1つのリポジトリに結合する方法を理解している場合 正しく、新しいリポジトリを作成して、既存のすべてのリポジトリを追跡することができます。また、既存のリポジトリからすべてのブランチをインポートしますよね?その後、既存のリポジトリを破棄できますか?または、それを実行したい場合は、別の方法を使用する必要がありますか?

また、それが私のワークフローを容易にするかどうか疑問に思います。

ユースケース1:some-featureと呼ばれる機能ブランチを作成することにより、CVSメインブランチの機能の開発を開始します。それから私はそれがv3に入らなければならないことを学びます。機能ブランチをv3にリベースできますか?

ユースケース2:v2で(他の機能の機能ブランチで)変更を加える場合、それをv3、v4、およびmainにマージする必要があります。それぞれのCVS追跡ブランチで「gitmergesome-other-feature」と入力するだけでそれを行うことができますか?

よろしくお願いします、

イェンス

4

1 に答える 1

1

新しいレポを作成して、既存のすべてのレポを追跡することができます。それはまた、既存のリポジトリからすべてのブランチをインポートしますよね?

確かに、一意のリポジトリのリモート リポジトリからすべてのブランチを取得できますが、それらのリモート ブランチから始まるローカル ブランチを作成する必要があります。
完了したら、それらのリモート参照を削除して、git-cvs リポジトリを使用しなくなります。

その後、既存のリポジトリを破棄できますか?
それらを CVS に公開する必要がない場合は、はい。

some-feature という機能ブランチを作成して、CVS メイン ブランチの機能の開発を開始します。次に、v3 に移行する必要があることを知りました。機能ブランチを v3 にリベースできますか?
はい、「git rebase vs git merge」で説明されているように、マージ前のリベースです。

git merge some-other-featureそれぞれの CVS トラッキング ブランチで「 」と入力するだけでそれを行うことができますか?
はい、それはそれらのブランチに伝播するためのアイデアです。

于 2012-11-07T14:00:30.140 に答える