torutkのブログ

ソフトウェア・エンジニアのブログ

バージョン管理ツールGit

仕事でのソフトウェア開発ではバージョン管理ツールにたいていSubversionを使っています。主な理由は、

といったところでしょうか。

Subversion以外のツールを使ったのは

  • 一人で、試行錯誤が多い作業をするときにMercurial
  • 開発現場が地理的に離れ、ネットワーク的に切り離されていたときにBazaar

です*1

Mercurialは、リポジトリと作業ディレクトリが同じでよいという1台のPCで作業&管理するときに手軽な点で使いました。このときBazaarの存在は知らず、GitはWindowsではまだ使い物にならなかった頃です。

Bazaarは、分散がまさに必要だった環境で、また、WindowsLinuxから日本語ファイル名を扱うという状況だったので、その時点ではほぼ一択でした。

それで、今までは仕事場ではBazaarが最適ではないかと思っていました。しかし、Bazaarはオープンソースの分散バージョン管理ツール御三家の中で3番手、NetBeansは標準でGit,Mercurial,Subversionに対応しているもののBazaarはプラグインもない状況です。

そうこうしているうちに、Gitが日本語ファイル問題の対応を進めました。ファイル名をUTF-8で保持するというアプローチのようです。日本語Windows上ではファイル名をCP932(Shift_JIS拡張)で扱うのでリポジトリに入れる際はUTF-8に変換します。

Mercurialの方は、win32mbcsを有効にするとWindows上で日本語のファイル名を扱えますが、CP932で保持するのでLinuxなどのUTF-8環境に持っていくと文字化けてしまいます。
もしくは、fixutf8というエクステンションがありますが、これはMercurial 2.x系には対応できていないようです。

Gitは最近、日本語情報(書籍、Web情報)が充実して、Web上ではサルも女子高生もGitを使う始末です。

Windows上でGitを使うには

Cygwinは、Linux環境に慣れた人が使うには楽ですが、Windowsべったりな人は使うのが難しいので、msysgitを使います。

UTF-8対応されたmsysgit 1.7.10以降を使います。

また、GUIを使いたい場合、

などがあります。

SubversionTortoiseSVNを使っているケースが多いので、TortoiseGitがよさそうに思えます*2
UTF-8対応されたmsysgitと対応するTortoiseGit 1.7.9以降のバージョンを使います。


今日はここまで

(追記)msysgit周りのUnicode対応状況

Unicode対応したmsysgit周りに現存する問題点についてよくまとまっています。ここを読めば日本語の扱いではまるポイントが避けられそうです。

(追記)GUIツール

Windows上でのGit GUIツールについてよくまとまっています。

(追記)JGit

Javaで書かれたGitです。Windows上でも動きます。コマンドラインCUI)も用意されています。

*1:RCS、SCCS、CVS、商用製品のClearCaseもちょこっとありますが、ここでは除外

*2:Tortoise系に馴染みがないなら、より高機能なGit Extensionsがよいかもしれません