2016-06-28 16 views
0

私はちょっと調べたが、うまくいくはずのものがいくつか見つかりましたが、何か間違った)ここで一般的な祖先がいないときにgitリポジトリから別のgitリポジトリにコミットする方法

は、私たちは、私はGitのにSVNのレポを変換

2)SVNリポジトリを持っていた

1)オーダーでの話ですが、--stdlayout引数(ミスを使用していませんでした作成された)ので、すべての枝とマージの良い歴史を得る代わりに、それはちょうど大きな枝フォルダを持っていた。すべてのコミットはそこにありましたが、分岐とマージの歴史は続きませんでした。トランクフォルダの内容(最新のコード)をリポジトリのルートに移動し、それ以外はすべて削除しました。必要に応じて他のものを見ることができますが、適切な分岐履歴を見ることができませんでした。

3)私たちは、私たちはそれは我々が何ができるものではありません始まりだとバックファイルに注釈を付けることが可能になりたかったことを決めた

4)新しいGitのリポジトリ内のコードの変更(分岐)のトンを作りましたこの点

5)私はSVN repoをとり、これをGitに再変換し、今回は--stdlayoutコマンドを使用して適切な履歴を得ました。

これで、最初の変換以降に行ったすべてのコミットを新しいレポにすることが課題です。だから1つのレポは、その時間の前にジャンクの歴史とその時間の後のすべての新しい変更があり、他のレポはその前に良い歴史を持っていますが、それ以来何もありません。

これまでのところ、2番目のレポを新しくクローンして、すべての変更をリモートとして追加しました。パッチを作成して適用し、ギャッブを実行し、git-resetを使用しようとしました。私はすべての試みで失敗しましたが、私は何かを間違ってやっているかもしれません。

これを達成する最も簡単な方法は、最初の移動の前と後の両方で分岐と結合の履歴を保持していますか?

ご支援いただきありがとうございました。知識が不足して申し訳ありません。これは、最初は問題ではなかったはずです。

これが役立つかどうかはわかりませんが、元のコンバージョン(青色)が発生した場所と新しいレポ(ピンク色)との位置がツリー内のポイントです。私は基本的に最初の変換後の最初のコミットの親を2番目の変換から最後のコミットに変更したいだけです(写真参照)。 Visual Tree

答えて

0

古いリポジトリからの差分/パッチファイルを作成し、新しいリポジトリ

+0

おかげに同じ差分を適用することができます。私は "git format-patch"と "git am"を使って、使用している各ブランチに対してコミットを成功させることができましたが、ブランチとマージの記録はありません。それは動作しますが、理想的ではありません。 – Alex

関連する問題