トップ > 興味のあること > コンピュータ > ソフトウェア

Git

http://git-scm.com/
http://code.google.com/p/tortoisegit/
http://sourceforge.jp/projects/tortoisegit/

2009年10月9日

始めてGitの話を聞いたのはいつ頃だったろうか? 当時はまだオタク向けのコア剥き出し状態で、 とても一般の人間に使える代物ではないという評判だった。 久しぶりに調べてみると、 コマンドラインベースならとっくに整備されていて使いやすいし、 ごく最近ながら TortoiseGit も実用レベルに達したようだ。 出自が出自なだけにちょっとWindowsに素っ気ないところもあるけれど、 そろそろ試してもいい頃合いだろう。

ちょろっと使って感心したのは、 ブランチとマージが簡単にできること。 CVSやSubversionでもできるんだけど、 いつもどれとどれをマージして、 どっちがマスターになるんだか混乱していたのだ。 それに比べるとMercurialやGitは楽。

また、Windows上で数千ページ3GBクラスのプロジェクトも、 一発でリポジトリに取り込めた。 しかも思ったよりも早く。 一晩かかるかと思って帰り支度をしながらcommitしたのだが、 帰るまでに終わってしまった。 Windows上で Mercurial を使った時は途中でダウンしたので、 何度か小分けにしてリポジトリに追加したものだが。 さすがはLinux Kernelプロジェクト用に作られただけのことはある。 タスクマネージャで見ていると、 CPUはバリバリ使うけれどメモリはあんまり使わないようである。

2009年10月12日

Mercurialに比べていいと思ったのは、 ブランチを切ったときデフォルトでそのブランチのログしか出さないところ。 Mercurialはデフォルト全部のログを出力で、 オプションで特定ブランチだけ出力。 Gitと真逆。 私的には、ブランチ切ったらそこに集中したいので、 Gitのアプローチの方が好き。

2010年3月14日

仕事で使い始めたら、 2GBを超えるリポジトリのcloneに失敗してびっくり。 msysgitのバージョンが古いせいだった。 Git-1.6.5.1-preview20091022 をインストールすればOK。

2010年3月25日

CVSからGitに移行するには、 http://cvs2svn.tigris.org/cvs2git.htmlのcvs2gitを使う。

$ ./cvs2git --blobfile=git-blob.dat --dumpfile=git-dump.dat --encoding=eucjp \
 --encoding=cp932 --fallback-encoding=cp932 --username=xxx@xxx.jp /data/cvs/www

で中間データを作り、 できあがったファイルを

$ mkdir -p /data/www.git
$ cd /data/www.git
$ git init --bare --shared
$ cat /tmp/git-blob.dat /tmp/git-dump.dat | git fast-import

みたいにしてGitのリポジトリに喰わせる。

2012年2月12日

以前メモリ2GBのマシンで試したときは数百MBのファイルで青息吐息だったが、 新しく組んだメモリ16GBのマシンだと1.28GBのファイルでも実用的な時間で扱える。 ハードウェアの進歩って、凄いなあ。

2012年3月6日

WindowsのEclipseでegitを使ったら、 見事に日本語ファイル名が化け化け。 git reset --hard なんかを使ってみたがうまくいかず、 結局共有リポジトリを最初から作り直すハメに。 まあ、分散型だったので、 手元にもまるまるリポジトリが残っていたのはよかった。 確かにメリットの一つではある。

2012年3月26日

職場ではメモリ1GBのマシンに共有リポジトリを作っていたのだが、 さすがにメモリが足りないようだ。 使い始めたときからガベージコレクションがメモリ不足で失敗する。 これはよりプリミティブなコマンドの組み合わせで回避した。 が、git cloneの時にも再圧縮に失敗する。 これはさすがに回避方法がわからなかったので、 少しメモリを増やしてもらった。 本当は4GBくらいにしたいところだが、とりあえずは1.5GB。 盛大にスワップが発生するものの、これで何とかなりそうである。 とはいえファイルは増えていく一方なので、 早いところもっとメモリを増やしてもらわなければ。

2012年4月4日

知らなかったが、xcode 4がgitに対応している。 統合環境なので慣れるまでピンとこないが、 少なくとも差分表示はきれいで見やすい。

2012年4月19日

32ビットで3GBメモリのWindows XP、 64ビットで16GBメモリのWindows 7、 いずれでもとあるリポジトリでgit gcを実行すると、 delta compression中にwarning: suboptimal pack - out of memoryが発生する。 処理は続行されてちゃんと終わるようだが、ちょっと気持ち悪い。 64ビットで8GBメモリのFreeBSD 8.2だと問題なく終わる。 してみると、Windows用のgitは32ビットプログラムなのか。 4GBのメモリ空間を使い切る日が来るとはなあ。

2012年10月6日

なんと、msysgitはバージョン1.7.10で国際化対応を果たしたらしい。 どうやら、 リポジトリに格納する時にファイル名をUTF-8に変換するのだとか。 でも、中身がiso-2022-jpなファイルを変更しても、 GUIツールに差分が表示されないなあ。