作成したばかりのgit-to-svnセットアップで、ここで終わりです。2つのリモートリポジトリを使用してリポジトリをセットアップしました。1つはsvnベースで、もう1つはリモートgitです。
svn-remote.svn.url=https://subversion.acme.com/svn/sales/portal/trunk
svn-remote.svn.fetch=:refs/remotes/git-svn
remote.origin.url=mottinger@git.tkknow.com:/gitroot/acme-gtm-2-0.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
これを設定すると、次のようにコミットをgitリポジトリからsvnリポジトリに移動できました。
git fetch origin
git rebase origin/master (linearizes commits to svn)
git svn rebase
git svn dcommit
競合をどのように処理するかをテストすることを決定するまで、すべてが順調でした。foo.datファイルを作成し、svn側からその中に行を追加し、git側に対応するファイルを作成しました。この行には、gitからのものであるという効果を示す行が含まれています。実行git fetch origin
しgit rebase origin/master
て、foo.datファイルを停止しました。それは問題ありませんでしたが、実行しようとするgit svn rebase
と競合が発生しました。完全に期待されているので、競合を編集してsvnrebase--continueを使用する手順を実行します。しかし、その後、混乱が始まります。実行しようとした後git rebase origin/master
リポジトリから他の変更をプルダウンするために、同じfoo.datファイルで競合します。svnの競合を解決すると、gitで失敗し、その逆も同様の状態になりました。すべての中で最も苛立たしいことは、この混乱を元に戻すためにリポジトリを元の状態に戻す方法を見つけることができないようです。今のところ、レポを完全に吹き飛ばしてやり直すことができるという贅沢がありますが、将来的には開発者がこれを使用するので、このような状態になった場合は、どうやって抜け出すかを本当に知りたいです。何が起こっているのか、そして一定のマージを終了する方法についてのヒントは大歓迎です。
ありがとう!