Cygwinにgit ver 1.8.3.4を導入する

Cygwinに付属するgitのバージョンは1.7.9。 理由不明ですが、長いことアップデートされていません。

一方、Cygwin Portsでは、現在version .1.8.3.4のgitがサポートされています。 別に古いバージョンでも良いっちゃ良いのですが、git difftoolの--dir-diff という超絶便利機能が、ver 1.7.11からしかサポートされていないという 悲しい状況のため、これを導入します。

git ver.1.8.3.4の導入

setup.exeを-Kオプション付きで起動します。setup.exeのミラーサイトを追加するオプションの模様

cygstart -- /path/to/setup-x86.exe -K http://cygwinports.org/ports.gpg

いつものようにポチポチと勧め、Choose Download Site(s)まで来たら、User URL欄に、ftp://ftp.cygwinports.org/pub/cygwinportsを入力してAddします。

これで、導入できるパッケージ一覧にCygwin Portsの内容が反映されるようになります。

git-completionの導入

同様に、git-completionも導入できます。 どうも、ver 1.7.9以降で、__git_ps1を表示させるためのシェルスクリプトが、git-prompt.shという形式で分割されたようです。 が、何故かこのファイルが含まれていません。仕方がないので、gitのソースから取り出しましょう。git ver1.8.3.4を、sourceにもチェックを入れて導入し直します。

/usr/src/git-1.8.3.4.tar.gz

に、ソースコードがインストールされるため、これを解答し、インストールします。

tar zxvf /usr/src/git-1.8.3.4.tar.gz
cp git-1.8.3.4/contrib/completion/git-prompt.sh /etc/bash_completion.d/

contribには、他にも色々な機能が詰まっているみたいなので、導入してみるのもいいかもしれません。

__git_ps1用の修正

.bashrc or .bash_profileを新環境に合わせて修正します。

git difftool --dir-diffをWinmergeに対応させる

git difftoolにWinmergeを利用するようにします。

以下のようなスクリプトを何処か(~/bin/等)にインストールし、.gitconfigで、スクリプトを呼び出すように修正します。

これでgit difftool --dir-diffが使えるようになりました。

参考文献