はじめに
今さらながら SVN で管理されているソースコードを GitHub へ移行することがあったので手順を備忘録的に記載しておきます。
細かいことは置いといて、とにかく移行したい人向けです。
目次
作業環境
- macOS Big Sur 11.6.3
- Homebrew 3.4.6
手順
-
git-svn のインストール
% brew install git-svn
% git-svn --version git-svn version 2.35.1 (svn 1.14.1)
- macOS Catalina 10.15 から SVN 関連のコマンドが非推奨になったので必要
- すでにインストールされている場合は不要
-
GitHub に空のリポジトリを作成
- README.md とか何か一つでもファイルが存在してると push するときエラーになるので
空
で作成すること
- README.md とか何か一つでもファイルが存在してると push するときエラーになるので
-
ローカルに作業用のディレクトリ作成
% mkdir svn-github-test % cd svn-github-test
- 移行が完了したら作業用ディレクトリは削除しても問題ない
-
SVN リポジトリを git-svn で clone
% git-svn clone [SVNリポジトリのURL]
- パスワード求められたら入力
- もし途中で止まったら clone してきたリポジトリに
cd
してgit-svn fetch
を実行すると続きからやってくれる -
git-svn fetch
しても何も出なくなれば clone 完了
-
clone してきたリポジトリに cd
% cd [リポジトリのディレクトリ]
-
clone してきたリポジトリと GitHub の空のリポジトリを紐付ける
% git remote add origin git@github.com:[ユーザー名]/[リポジトリ名].git
-
紐付けできたか確認
% cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true precomposeunicode = true [svn-remote "svn"] url = [SVNリポジトリのURL] fetch = :refs/remotes/git-svn [remote "origin"] url = git@github.com:[ユーザー名]/[リポジトリ名].git fetch = +refs/heads/*:refs/remotes/origin/*
-
[remote "origin"]
が追加されてば OK
-
-
GitHub へ push
% git push -u origin master
-
GitHub のリポジトリにプッシュされたか確認
以上