長生村本郷Engineers'Blog

千葉県長生村本郷育ちのエンジニアが書いているブログ

SVN から Git へ過去コミットログを担保した上で移行する

概要

リポジトリ管理を SVN から Git 移行する必要があり
その際に利用したコマンドをまとめます。

手順

まずリモートに移行先のリポジトリを作成しておきます。


svn to git

以下コマンドを実行しようとしたら以下エラーが出た場合
git pull origin master 
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

要約すると、公開鍵のパーミッション拒否されています、ということです。

remote repositoryにどのようにアクセスしようとしているかの確認をします。

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
[svn-remote "svn"]
        url = http://www.svn.rubygroupe.jp/svn/hogehoge
        fetch = trunk:refs/remotes/svn/trunk
        branches = branches/*:refs/remotes/svn/*
        tags = tags/*:refs/remotes/svn/tags/*
[remote "origin"]
#        url = git@github.com:xxxxxxxxx.git
        url = https://github.com:xxxxxxxxx.git
        fetch = +refs/heads/*:refs/remotes/origin/*

再度 pull してみてください。

git pull origin master

あとがき

Git側がSVNを引き取ることを想定して用意しているという大人な対応に感謝

そもそも何故移行?という方はまずGitを触ってみてください。


GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)