git svn コマンドで file://でローカルパスを設定する場合にドライブ文字に:を付けてはいけない。

 

SVN でローカルリポジトリからチェックアウトするとき、URLは以下のように指定します。

 

> svn co file:///c:/svn_repos/trunk/Widget1

 

SVN から Git にリポジトリを移行したいので

git svn コマンドでも リポジトリのURL は同じように指定します。

 

> git svn clone file:///c:/svn_repos/trunk/Widget1

 

しかし、これは次のようにエラーになります。

 

> git svn clone -s --prefix="" --authors-file=user_map.txt file:///c:/svn_repos/trunk/Widget1 Widget1 Initialized empty Git repository in C:/Projects/Widget1-Dev/.git/ Can't create session: Unable to connect to a repository at URL 'file:///c:/svn_repos/trunk/Widget1': Unable to open repository 'file:///c:/svn_repos/trunk/Widget1' at C:/Program Files/Git/mingw64/share/perl5/Git/SVN.pm line 310.

 

【原因】

Windows Subversion と msys/msys2 の PATH の解釈に微妙な違いがあるため、git-svnとして実装されている Perl スクリプトで PATH(リポジトリURL)を正しく解釈できない。

 

【対応】

ドライブに「:」を付けない。

 

> git svn clone -s --prefix="" --authors-file=user_map.txt file:///c/svn_repos/trunk/Widget1 Widget1

 

Git のインストール

Git をインストールします。

 

ダウンロード

  1. Download for Windows ボタンをクリックし、ダウンロードします。

インストール

  1. ダウンロードしたファイルをダブルクリックしてインストールを開始

  2. Nextボタン

  3. 任意のインストールフォルダを指定してNextボタン
      

  4. インストールしたいコンポーネントを選択してNextボタン
    よく分からない場合はデフォルトでよい

  5. スタートメニューを作成するかどうか設定してNextボタン

  6. デフォルトで使用するエディタを設定してNextボタン

  7. Pathを設定する範囲を選択してNextボタン

  8. Use the OpenSSL Libraryを選択してNextボタン
      

  9. チェックアウト時に改行コードを変換するかどうか
    Checkout as-is, commit as-is(変換しない)を選択してNextボタン

  10. Use MinTTYを選択してNextボタン

  11. その他設定は変更せずにInstallボタン

  12. Finishボタン
     

 

 

TortoiseGit のインストール

 次にTortoiseGitをインストールします。

https://tortoisegit.org/

 

ダウンロード

  1. TortoiseGitにアクセス
  2. Downloadボタン
  3. Downloadページより対象のインストーラーとLanguage Packをダウンロード

インストール

  1. ダウンロードしたファイルをダブルクリックしてインストールを開始
  2. Nextボタン
  3. Nextボタン
  4. SSHの設定、ここではそのままでNextボタン
  5. インストールするコンポーネントとインストール場所を指定してNextボタン
    よく分からない場合はデフォルトで構いません
  6. Installボタン
  7. Run first start wizardにチェックをしてFinishボタン
  8. LanguageをEnglishにして次へボタン
  9. 次へボタン
  10. インストール済みのGit.exeの場所を設定して次へボタン
  11. NameとEmailを入力して次へボタン
    後から設定も可能なので空白にする場合は、Don’t store these settings now.にチェックして次へボタン
  12. ひとまずそのままで完了ボタン

Language Pack をインストールして TortoiseGit を日本語化する

  1. ダウンロードしたLanguage Packファイルをダブルクリックしてインストールを開始
  2. エクスプローラーから任意の場所を右クリック
  3. TortoiseGit>Settings
  4. General>Language
    日本語を選択してOKボタン

ユーザー設定

 コミットするために必要です。

  1. TortoiseGit>設定
  2. Git>設定のでどころ
    グローバルを選択
  3. ユーザー情報で以下を入力します。
    名前
    メール
  4. OKボタン

リポジトリの作成

中央リポジトリの作成

  1. エクスプローラーでリポジトリとしたいフォルダを開いて右クリック
  2. Git ここにリポジトリを作成
  3. Bare を生成をチェック


ここで言う中央リポジトリとはSVNのリポジトリのように共有して取得・変更を行うリポジトリと思ってください。

 

作業リポジトリ(ローカルリポジトリ)の作成

  1. 任意のフォルダで右クリック
  2. Git クローン
    URL 中央リポジトリのディレクトリ
    ディレクトリ 作業リポジトリとするディレクトリ

SVN のリポジトリを Git に移行する

SVN のリポジトリをクローン

  1. 任意のフォルダで右クリック

  2. svn リポジトリからをチェック
    SVNだとfile:///C:/のようにドライブ文字になっています。
    ここでは、ドライブ文字から":"を削除します。
    上記だとfile:///C/になります。

SVN のクローンを Git にプッシュ

あらかじめ、中央リポジトリ(Bare)を作成しておきます。

  1. SVNをクローンしたフォルダで右クリック
  2. TortoiseGit>プッシュ
  3. 宛先の管理ボタンをクリック
  4. Git>リモート>URL:にあらかじめ作成しておいた中央リポジトリを指定
  5. OKボタン
  6. デフォルトだとリモートにoriginが設定されます
  7. OKボタン