11

Git リポジトリを SVN に移植する必要があるプロジェクトがあります。オンラインで投稿されたいくつかの方法を試しましたが、どれもうまくいきません。誰かが助けてくれれば、本当にありがたいです。

私はガイドに従った

  • Git リポジトリを作業コピーに複製する
  • コピーに入ります
  • 頭を最初のコミットに巻き戻す
  • すべてのコミットをチェリーピッキング
  • やっていgit svn rebasegit svn dcommit

この方法の問題点は、私の Git リポジトリの履歴が複雑なことです。多くの分岐と合流があります。チェリーピックを行ったとき、最終的なリポジトリの一部のみが選択されました。

質問: チェリー ピッキングを回避する方法はありgit svn rebaseますか? ひょっとしたら別の物に交換?

この Web 投稿に従いました: Git リポジトリを svn リポジトリに移行する

この投稿は本質的に

  • やりましたgit svn clone
  • クローンされた作業コピーで git リポジトリを取得しました
  • マスターを old_master に分岐しました
  • old_master からマスターにすべてのコミットを適用しました ( git svn rebase)
  • やりましたgit dcommit

このアプローチの問題は、最初のアプローチの問題と似ていgit svn rebaseます。また、すべての競合をスキップすると、git dcommit失敗しました。それは私に言った:Unable to determine upstream svn information from HEAD history.

この時点から他に何を試すべきかわかりません。私が間違っていたことに気付いた場合、または他の方法でそれを行う方法がある場合は、何か提案をしてください。高く評価しました!!

4

2 に答える 2

2

さて、あなたはこの質問を見なければなりません。最良の答えは次のとおりです。

この方向への変換を行う際の一般的な問題は、Subversion が期待するように、Git リポジトリにリビジョンの単なる直線的な履歴以上のものを含めることができることです。異なる履歴と頻繁なマージ コミットを伴う複数の祖先はすべて可能であり、Subversion リポジトリで簡単に表すことはできません。

Git リポジトリに線形の履歴がある単純なケースでは、git-svn dcommit を使用して、それ以外の場合は空の Subversion リポジトリにロットをプッシュできます。

よろしくお願いします。

于 2016-03-24T13:01:53.370 に答える