-2

1 つのファイルに対して 2 つのリビジョン履歴を結合する方法を探しています。

私たちのプロジェクトの 1 つが RCS を介して追跡されました。現在、このプロジェクトは CVS で動作しています。最初は新しいプロジェクトとしてコミットされました。その結果、CVS の履歴には、RCS を介して追跡された古いリビジョンは表示されません。

たとえば、ファイル foo.c が RCS で 10 回、次に CVS で 2 回改訂されたとします。RCS にはバージョン 1.1 から 1.10 があり、CVS にはバージョン 1.1、1.2、および 1.3 があります。RCS バージョン 1.10 と CVS バージョン 1.1 は同一です。

foo.c が 1.1 から 1.12 までの 12 のバージョンを示すように、結合された履歴を作成しようとしています。CVS は RCS と同じファイル形式でリビジョンを保存するため、既存の RCS ファイルから始めて、「ci」コマンドを使用して新しい変更をチェックインするという簡単な作業で済みます (タイムスタンプ、ユーザー ID、およびコミット メッセージを保持します)。 . CVS タグも保持する必要があります。この新しい RCS ファイルには完全な履歴があり、CVS リポジトリに追加して古いバージョンを置き換えることができます。

このコードベースには分岐がないと仮定します。ただの直線展開。

そのようなユーティリティ プログラムは既に存在しますか?

4

2 に答える 2

2

それが単一のファイルであり、多数のリビジョンを転送する必要がない場合は、古いバージョン管理システムから一度に 1 つのリビジョンをチェックアウトし、それを新しいバージョン管理システムにコミットすることができます (ほとんどのバージョン管理システムのメタデータは、同じディレクトリ)...この方法はもちろん、ソースと宛先のバージョン管理システムが何であれ機能します。これは、私があなたと同様の問題を抱えたときに個人的に行ったことです。

または、多くのバージョン管理システムとの間で変換できるTailorツールを試すこともできますが、必要なように 2 つの異なる履歴を 1 つの履歴に「マージ」できるかどうかはよくわかりません。

于 2009-09-02T11:39:53.307 に答える
1

RCS ファイルを操作するための Python ライブラリEditRCS ( PyPi ) を作成しました。サンプル スクリプト rcs_join は、ある RCS ファイルの最初のリビジョンを別の RCS ファイルの先頭に結合し、ブランチとタグのリビジョンを更新します。

うまくいけば、それはあなたが望んでいることです(おそらく今では手遅れです!)

于 2014-11-18T18:13:20.767 に答える