ググった記事を色々参考にしたがうまくいかなかったので、成功した手順を書いておく。
まだ良くわかっていない部分もある。
前提
- そこそこでかいリポジトリである
- branchやtagもある
- OSはWindows
手順
ディレクトリの作成
$ mkdir C:¥workspace¥hoge
$ cd C:¥workspace¥hoge
git svn init
$ git svn init http://subversion.example.com/svn/myrepo -T trunk/hoge --prefix svn/
.git/configを編集する。
-
[core]
は元ファイルを優先すること -
[gc]
部分の記述が重要だった
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
# ここから下について変更する。
[svn-remote "svn"]
noMetadata = 1
url = http://subversion.example.com/svn/myrepo
fetch = trunk/hoge:refs/heads/master
# branchの自動更新が不要なら以下2行は省略可
branches = branches/*:refs/heads/*
tags = tags/*:refs/tags/*
# ここの変更が重要だった
[gc]
auto = 0
git svn fetchをする
- 結構時間がかかるが途中で失敗することは無かった
- 完了後に
git gc
する - 最後に
.git/config
から[gc]の設定を取り除く
$ git svn fetch --fetch-all
$ git gc