5

私は2つのリポジトリを持っています:

  • github でホストされている Gephi (ビッグ オープン ソース プロジェクト)
  • Gephi に基づく私の会社のプロジェクト

7 か月前、私たちのプロジェクトが始まったとき、誰かが github で gephi プロジェクトのスナップショットを取り、それを企業の svn に保存しました => 変更履歴の損失

ここで、プロジェクトを git リポジトリに移動し、変更を元のプロジェクトにマージすることにしました

私は今、git-svnでsvnから移行されたgitリポジトリを持っています

私のファイルには、プロジェクトの開始時以降の変更履歴がありません

リポジトリの初期状態を元のリポジトリの状態にマッピングできますか? つまり、特定のリビジョンから元のリポジトリへの変更の適用を開始したいと考えています。

アップデート:

今日、私は別の障害を見つけました。最初にスキーマ:

ここに画像の説明を入力

  • 赤い枝は元のプロジェクトです

  • <alpha1>および<alpha2>は、メイン プロジェクトのプラグインのコミットです (でコミットされたコードとは関係ありません<E' E'' E'''>) 。

  • <E'> <E''> <E'''>、メイン プロジェクト (赤) リポジトリからコードが追加されました<E>(各コミットで cca からのプロジェクトの 3 分の 1 <E>)

赤と青のリポジトリを 1 つにフェッチしました。2番目のスキーマでは、望ましい状態があります。これを行うことは可能ですか?(たとえば、1 つのコミットから作成し<E' E'' E''>( <E'>)、そのコミットをブランチからマージされたものとしてマークし<ABCD><alpha1 alpha2>)

ジュリアンさん、返信ありがとうございます。とても役に立ちそうです。

4

2 に答える 2

1

移植(またはおそらく置換)を調査したいと思われるかもしれません。これらの方法は、変更を実際に反映するために履歴を書き換えるのではなく、メタデータを追加してリポジトリの表示状態を変更するというfilter-branch点で異なります。rebaseこれは、既存のブランチを使用しているユーザーがいる場合に役立ちます。これにより、既存のブランチの下から履歴を変更する必要がなくなります。

あなたの場合、追加の親としてE'与えて、接ぎ木を追加したいと思うでしょう。E

于 2012-07-03T12:47:41.247 に答える