質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

SVN

SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

Q&A

解決済

2回答

3811閲覧

git svnでsvnからgitへの移行中に『fatal: Unable to write new index file』がでてきてしまう

touwaerio

総合スコア13

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

SVN

SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

0グッド

0クリップ

投稿2019/07/05 06:26

編集2019/07/05 06:35

前提・実現したいこと

SVNをGitに移行を行っています。

行っている手順としては
①git svn cloneで一旦ローカルにSVNからGitのリポジトリとしてクローン
②移行先のリモートリポジトリを登録
③そこへプッシュ
という形で行っております

今回①でエラーが起きてしまいキレイに移行ができていない状態です。

発生している問題・エラーメッセージ

r101 = リビジョンのハッシュ値みたいなもの (refs/remotes/origin/git-svn) M ファイル名 fatal: Unable to write new index file (in cleanup) update-index -z --index-info: command returned error: 128

SVNからクローンしGitに移行している際に上記のエラーがでており
その際にSVNからのフェッチを諦めて、エラーがでたファイルをスキップして次のものにいってしまいます。
結果、完全な形で移行できていない問題が発生しております。

また上記のエラーが発生する個所が毎回同じファイルというわけではなく、
起きるファイルやリビジョンもバラバラの状態です。

該当のソースコード

git svn clone "移行元SVNリポジトリ" --prefix=origin/

上記のコマンドにて一旦ローカルにクローンしている際に起きます

試したこと

調べて似たような事象のものは見つけたのですが、解決には至りませんでした。

■git svn resetを行う
git svn reset -r "何個か前のリビジョンのハッシュ値みたいなもの"
でリセットした後にもう1度
git svn fetch
で再開しても同じ箇所で起きます。

■.git\svnディレクトリを削除後、もう1度git svn fetch を行う

■.git\refs\remotes\origin\git-svnの内容を前のリビジョンのハッシュ値みたいなものに変更し
再度 git svn fetch を行う

補足情報(FW/ツールのバージョンなど)

Gitは最新バージョンの2.22
移行元のSVNは1.6.11

なにかわかることがありましたら、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

移行元のSVNは1.6.11

そこそこ古いですね。
もしかして、そのせいではないですか。

特に気になるのは、レポジトリの保存形式。

古い形式の「BerkeleyDB」形式と、新しい「FSFS」形式とがあって、ここによると「FSFS」形式がデフォルトになったのは1.8だそうなので、「BerkeleyDB」形式の恐れがあります。
(一応FSFS形式も使えるようなので、間違いなくとは言いませんが)

とりあえず、ここの『レポジトリの移行』を参考に、svnadminコマンドのdumploadを使い新しいレポジトリを作り、新しいレポジトリでアクセスできるか試されてはいかがですか。

また、BerkeleyDB形式のレポジトリは壊れやすい、というのが、その頃subversionを使っていた人間にはよく知られていた話です。
もしdumpでエラーが出るようであれば、…残念ですがそういうことでしょうね。

投稿2019/07/05 14:47

katsuko

総合スコア3462

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

touwaerio

2019/07/08 00:53

ご返信ありがとうございます! SVNが古いのがネックになってる可能性があるのですね。。。 とりあえず、アドバイス頂いたやり方を試してみようと思います!
guest

0

自己解決

根本的な解決にはなっていないかもしれませんが、
gitbash からのコマンド入力ではなく、TortoiseGitからのsvnのクローンを行った所
なぜかうまくクローンされるようになりました。
とりあえず自分のやりたいことは一旦クリアしましたので質問をクローズさせていただきたいと思います。
ありがとうございました。

投稿2019/07/08 07:45

touwaerio

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問