2

最近、CVS リポジトリを Git に移行しました。

私たちの CVS リポジトリには、開発が完了した後、後でスケジュールする時間ができるまで隠しておいたコードを含むいくつかのブランチがありました。

CVS2Git でマイグレーションを行ったところ、Git リポジトリにブランチが引き継がれる結果になりましたが、実際に CVS でブランチされていたファイルだけが Git ブランチに現れるという仕組みでした。

たとえば、HEAD の CVS に次のファイル/フォルダー ツリーがあるとします。

lib
   -com
      -example
         -folder1
            -file1a
            -file1b
         -folder2
            -file2a
            -file2b

そして、CVS の BRANCH_COOL_FEATURE ブランチで「file1a」と「file2b」ファイルだけを分岐しました。Git の結果の「BRANCH_COOL_FEATURE」ブランチには、「file1a」と「file2b」ファイルのみが含まれます。

マージしたいCVSブランチに含まれるすべてのファイルを特定する最も簡単な方法を探しています.マージを行います。

これは私がこれまでに得た最高のものですが、より良い方法があることを望んでいました:

1) MASTER および BRANCH_COOL_FEATURE で git diff --name-status を実行し、diff-filter を M に設定して、ブランチで実際に変更されたすべてのファイルを識別するか、ブランチ内のファイルの完全なリストを取得します 2) ファイルごとに、CVS履歴を見て、タイムスタンプを関連付けて、マージされる差分を表すそのファイルに対して生成された2つのGitコミットを識別します3)その特定のファイルでgit mergeを実行し、マージする差分として2つのコミットを指定します

助けてくれてありがとう、ありがとう!

-Git初心者

ps 実際の CVS2Git 変換がどのように実行されたかについての詳細はあまりありませんが、それが重要な場合は、おそらくそれを手に入れることができます.

簡単にできる方法はありますか

4

0 に答える 0