1

履歴のある大規模なサブバージョン リポジトリを git に移行しています。「git svn clone」コマンドを使用して svn リポジトリのクローンを作成することから始めました。これはクローン作成中にクラッシュしましたが、「git svn fetch」を実行して移行を再開しました。移行は数日間正常に実行されていました-時々クラッシュし、ここで説明されているように index.lock ファイルを削除する必要がありました-致命的: Unable to create '/.git/index.lock': File exists . このファイルを数回削除した後、同じエラーが発生するまで正常に続行されました。

    fatal: Unable to create '/path/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.
read-tree f49b2a08d26076d9cb2828b9aba5fde30d46f73b: command returned error: 128

ただし、今回は index.lock ファイルの削除が機能せず、「git svn fetch」は引き続き文句を言います。何が起こっているかは次のとおりです。

上記のエラーが表示
されます index.lock ファイルを削除します
'git svn fetch' を再起動します
'git svn fetch' プロセスが index.lock ファイルを再作成し
ます

したがって、「git svn fetch」は、index.lock ファイルを再作成し、それが存在することについて不平を言う悪いループにあるようです。そう:

index.lock ファイルを削除しました。
マシンに十分なディスク容量があることを確認しました。
ロックファイルを保持していた古いgit処理がぶら下がっている場合に備えて、マシンを再起動しようとしました。
ここでアドバイスされているように、git gc と git prune を実行しました Fatal : git-write-tree: error building trees

上記のどれもうまくいきませんでした。私は git が初めてです。移行には数日かかるため、移行を再開したくありません。誰かが私が試すことができる何か他のことを提案できますか?

4

1 に答える 1

2

これを整理するためだけに自分の質問に答えます。残念ながら、私はこの問題の真相を突き止めることができず、新しい移行を開始する必要がありました (実際、異なるマシンで 3 つの移行を開始し、最初の移行は実行に 2 週間かかりました)。大規模なリポジトリ (私たちのリポジトリは約 35 GB のコードとアセット ベースです) を移行する場合は、時間がかかり、フラストレーションが発生することが予想されます。上記のエラーが頻繁に発生しましたが、index.lock ファイルを削除し、"git svn fetch" で移行を続行するとうまくいきました。移行が続行されないという上記の問題に再度遭遇することはありませんでした。

于 2014-01-10T09:44:21.543 に答える