2016-08-04 21 views
0

問題: WindowsでのUbunut VMによる移行。 Windowsは死のブルースクリーンを持っていた。 Windowsが再起動しました。移行が破損しました!SVN2Gitオブジェクト参照エラー

~/folder$ svn2git --rebase 
error: refs/remotes/svn/some_branch does not point to a valid object! 
fatal: git cat-file 81974ef70e6b9dba85295bf7341dd6808c03250d: bad file 
cat-file commit 81974ef70e6b9dba85295bf7341dd6808c03250d: command returned error: 128 

command failed: 
git svn fetch 

これらの答えで述べたように私はすでに私の問題を解決しようとした:

を残念ながらどれもこれまでに私を助けていません。

誰かがそれを修正する手掛かりを持っていますか?この移行にはすでに2週間かかりましたが、もう一度やり直したくありません。

答えて

1

svn2gitと呼ばれるプレニーツールがありますが、おそらく最も良いのはhttps://github.com/svn-all-fast-export/svn2gitのKDEです。あなたの質問から、私はあなたがそれを使用していないと結論しますが、それはに基づいています。そのsvn2gitツールを使用することを強くお勧めします。それは私がそこで利用できると知っている最高です、そして、それはあなたがそのルールファイルでできることに非常に柔軟です。

また、2週間以上先に移動した移行のほとんどは、恐らく高速であるため、おそらく数時間後に終了します。

svnevereverからhttp://blog.hartwork.org/?p=763までの履歴は、SVNリポジトリの履歴をGitに移行する際の履歴を調べるのに最適なツールです。

+0

これを試してみましょう。 –

+0

このエラーに直面する: 'svn-all-fast-export:/build/subversion-yttRtj/subversion-1.9.3/subversion/libsvn_subr/dirent_uri.c:972:svn_dirent_join:アサーションsvn_dirent_is_canonical(base、pool)が失敗しました。中止(コアダンプ) ' –

+0

私はそのエラーを見たことがありません。あなたが発行しているコマンドは何ですか? – Vampire

0

最初に解決する問題は、git-fsckが正常に動作することです。その後、2番目の問題は移行を継続できることです。

ブランチの最初のコミットが正しくディスクに書き込まれた可能性がありますが、最後のコミットは失敗した可能性があります。 git reflog show refs/remotes/svn/some_branchを実行してみてください。コミットが表示されている場合は、最後のコミットを探してください:git show <hash>。その後、ブランチをリセットします:git update-ref -m 'last commit found' refs/remotes/svn/some_branch <hash>

次にgit fsckを実行し、次のブランチを修正してください。

git-svnには、コマンドgit svn reset -r <n>があります。 svn2gitにはおそらく同様のものがあります。これにより、最後の正しい状態からフェッチを再開できます。

関連する問題