5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

TortoiseGitでSVNリポジトリを履歴を含めてGitに移行する

Last updated at Posted at 2021-02-15

過去にSVNでソース管理していたシステムの改修が発生したタイミングでGitへ移行したので手順をまとめてみました。
開発PCは当時から新しくなっているのでSVN関連のアプリなんてないよ!と思っていましたが、移行にはGit系アプリだけでいいんです!!

実施した環境

  • PC:Windows10

  • SVN:VisualSVN

  • Git:GutBucket

    ※SVN,Gitともに社内オンプレサーバにあり

準備

1.Git for Windowsのインストール

下記からダウンロードしてインストール。
[Git for Windows](https://gitforwindows.org/,"Git for Windows")

2.TortoiseGitのインストール

下記からダウンロードしてインストール。
もし日本語化するなら日本語のLanguage Packも併せてダウンロードしてインストール
[TortoiseGit](https://gitforwindows.org/,"Git for Windows")

3.移行元SVNのリポジトリURLを取得

チェックアウトする時に使用していたURLです。
わからなければVisualSVNがインストールされているサーバに入り込んで対象のリポジトリを右クリックするとクリップボードにコピーできます。

スクリーンショット 2021-02-15 143417.png

4.移行先Gitのリポジトリを作成

先に空のリポジトリを作成しておく必要があります。
GitBucketにログイン→「New repository」
スクリーンショット 2021-02-15 130714.png
ラジオボタンを「Create an empty repository」にしておきます。
スクリーンショット 2021-02-15 130602.png
作成後に表示されるコマンドを確保

手順

ローカルにフォルダを用意

ソースをクローンするためのフォルダです。
どこでも構いません。

クローンする

スクリーンショット 2021-02-15 112837.png
フォルダを右クリック→Gitクローン(複製)

スクリーンショット 2021-02-15 113009.png
「URL」に準備3のURLを入力、「ディレクトリ」は用意したフォルダパス、下のほうの「SVNリポジトリから」をONにして、「ユーザ名」にSVNで使用しているユーザ名を入力します。

すると、途中で処理が止まってtortoisegit cli stdin wrapperのプロンプトが上がってきて英語のメッセージの後半が下記のようになっていると思います。(キャプチャを取り忘れました

(R)eject, accept (t)emporarily or accept (p)ermanently?

これは接続が正しいかを確認して、 t (一時的に信頼)か p (恒久的に信頼)を選ばせているようなので、問題なければどちらかの文字を入力すると処理が続きます。

この後、SVNのユーザ名に対するパスワードを入力するプロンプトが上がってくるので正しいパスワードを入力すると処理が完了します。
(Git用に変換しているらしく多少時間がかかりました)
スクリーンショット 2021-02-15 112703.png
無事成功!

スクリーンショット 2021-02-15 113301.png
履歴もちゃんと表示されています。

Gitリポジトリをリモートに追加

コマンドプロンプトやGit CMDでクローンしたフォルダに移動して下記を実行

git remote add origin ssh:対象のGitリポジトリURL

準備4で最後に表示されたコマンドを実行すればOKです。
※TortoiseGitでもできますがコマンドを実行したほうが断然速いです

pushする

対象フォルダを右クリック→TortoiseGit→プッシュ
スクリーンショット 2021-02-15 151657.png
スクリーンショット 2021-02-15 114248.png
Putty鍵の指定を必要に応じて行ってから実行します。
スクリーンショット 2021-02-15 130406.png
プッシュ成功。

GitBucket側で表示させてみると
スクリーンショット 2021-02-15 130949.png
履歴も表示されました。

おわりに

基本的にすべてTortoiseGitがやってくれるのでかなり楽にできました。
既にGitを使用する環境であれば簡単に移行できます。

参考

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?