git svn を使ってみる (Windows 環境構築編)
GitHub のおかげで プライベートでは Git 一色の今日この頃。そろそろ 仕事でも Git を使ってみることに...
分散型リポジトリを使った開発のリズムは非常に心地よく 一度味わってしまうと
もう 二度と集中型リポジトリを使った開発には戻れない...
ということで...
仕事でも Git を使いたいと思うのは至って自然な流れではありますが、
色々と大人の事情もあって リポジトリ自体を SVN から Git へ移行するのはそんなに簡単な話ではありません。
と言う訳で git-svn ですよ。
git-svn を使えば、今まで通り SVN を使ってプロジェクトを共有しつつ、ローカルの開発環境では こっそり Git が使えてしまうのです。
自分だけ 分散リポジトリを使っていい感じで開発を行い、すべての準備が整ったら集中リポジトリに push して、他の開発者に公開するなんてことができます。
もちろん、他の開発者は 今まで通り SVN が使えるので、誰にも迷惑をかけることはありません。
git-svn について詳しく知りたい方は 既にたくさんの方が書かれていますので そちらを見てもらうとして...。
では、早速 git-svn を利用するための 環境を構築します。
今回は業務で使うことが前提ですので、OS は もちろん Windows XP SP3 です。
Cygwin のインストール
今回は Cygwin の git を使うことにしました。
理由は Cygwin の git でないと日本語名のファイルがうまく扱えないからです。
もちろん 業務では 容赦なく 日本語ファイル名のドキュメント類も SVN にコミットされているのです。
それらを git-svn で正しく扱おうとすると、現状 Cygwin しか選択肢はないようです。
もし、他にもいいものがあれば ぜひコメントください。
と言うことで...
まずは http://cygwin.com/setup.exe をダウンロードして
c:\cygwin 配下におきます。
次にコマンドプロンプトを立ち上げて
c:\cygwin\setup.exe -q -d -D -L -s http://ftp.jaist.ac.jp/pub/cygwin/ -l "%USERPROFILE%\.cygwin" -R c:\cygwin -P gcc,git,git-completion,git-svn,make,vim,wgetを実行すると、勝手に cygwin と gcc,git,git-completion,git-svn,make,vim,wget がインストールされます。これ結構便利...
gcc,make,wget は この後インストールする cygterm で必要になりますので合わせてインストールしておきます。
また 既に cygwin がインストールされている場合でも 上記のパッケージのいずれかがインストールされていない場合は、同じように実行すれば、インストールされていないパッケージだけインストールしてくれます。
CygTerm のインストール
コマンドプロンプトで Cygwin を使うと何かと面倒ですので CygTerm をインストールします。
CygTerm があれば putty から Cygwin が使えるので とっても便利です。
スタートメニューから Cygwin を起動して
cd /tmp wget http://www.dd.iij4u.or.jp/~nsym/cygwin/cygterm/cygterm107.tgz tar zxvf cygterm107.tgz cd cygterm107 make mkdir ~/bin make install cd ~ rm -r /tmp/cygterm107のように実行すると c:\cygwin\home\<ユーザ名>\bin\ 配下に
- cygterm.exe
- cygterm.cfg
インストールされた cygterm.exe のショートカットを作成して
のように 作業フォルダを c:\cygwin\bin に変更します。
CygTerm の実行には c:\cygwin\bin\cygwin1.dll が必要ですので、 作業フォルダを c:\cygwin\bin にしないと起動できないようです。
代わりに Windows の環境変数の PATH に c:\cygwin\bin を追加しても問題ないようですが、ショートカットの方が無難かな...
PuTTY のインストール
個人的には PuTTY ごった煮版 がオススメです。
ここでは PuTTY ごった煮版 のインストール手順を紹介します。
と言っても http://yebisuya.dip.jp/DL/putty-0.60-JP_Y-2007-08-06.exe をダウンロードして実行するだけです。
インストールオプションは基本的にデフォルトで良いと思います。
CygTerm の設定
先ほど起動した Cygwin で ~/bin/cygterm.cfg を
# CygTerm setting TERM = "C:\Program Files\PuTTY\putty.exe" -load "cygterm" -telnet %s -P %d TERM_TYPE = cygwin PORT_START = 20000 PORT_RANGE = 40 SHELL = /bin/bash --login -i ENV_1 = MAKE_MODE=unix #ENV_2 = HOME = /homeのように編集してください。
PuTTY の設定
編集したら 早速 先ほど作成したショートカットをクリックしてみてください。
PuTTY が立ち上がるはずです。起動したら 忘れないうちに PuTTY の設定を
- 端末 - ローカルエコー:強制的にオフ - ローカルライン編集:強制的にオフ - ウィンドウ - 変換 - 文字コードの設定:UTF-8/Auto-Detect Japaneseのように変更して保存しておきます。
Git の設定
最低限 以下の設定はしておいた方がよさそうです。
もちろん、user.name, user.email は 適宜 変更してください。
git config --global user.name bluepapa32 git config --global user.email bluepapa32@bluepapa32.com git config --global core.safecrlf true git config --global core.autocrlf true git config --global core.quotepath false git config --global log.date local
Git リポジトリの生成
SVN リポジトリ からプロジェクトをチェックアウトして ローカルに Git リポジトリのクローンを生成します。 もし、SVN リポジトリが
http://bluepapa32.com/svn/myproject |-- trunk |-- branches `-- tagsという SVN で奨励されているディレクトリ構成なら とっても簡単です。
git svn clone -s http://bluepapa32.com/svn/myprojectを実行するだけです。
ただ、全てのリビジョンを 1 から順番にエクスポートしていくので、かなり時間がかかります。
可能なら 帰る直前に実行しておくことをおススメします。
Git リポジトリのクローンができたら
cd myproject git svn show-ignore >> .git/info/excludeのように実行して、SVN の除外ファイルの情報を取り込みます。
とりあえず、こんな感じで Windows 上の git-svn を使うための最低限の環境を構築することができました。
あとは ガンガン使い倒すだけです。