Git.exe自体は純粋なWindowsアプリケーションですが、実行の際にUnix由来のユーティリティやコマンド、シェルスクリプト、Perlスクリプトなどを必要としています。このため、Git for Windowsではmsysと呼ばれるMinGW実現のために移植されたUnixツールの環境を必要としています。
しかしながら今のGit for Windowsのmsys環境は、様々な理由からだいぶ前に元々のmsysからフォークした環境となってしまっており、現状ssh/open ssl, bash.exeに見られたような、早急に対応が必要な問題で対応が遅れたり、MinGW環境や、Ruby Devkitで使用するmsys環境との不整合、使用しているPerlやツールのバージョンが古すぎるなどの問題を抱えています。
これを解決するために、従来のmsysGitのmsys環境をやめて、それらとの整合性がとれるような環境を構築し、その上にgitのビルド環境を構築しようというのが、このgit-for-windows sdkだと言うことのようです。
git-for-windows sdkではGit for Windowsインストール時に、自前のmsys環境をインストールするのではなく、msys標準のインストーラ、パッケージマネージメント、リポジトリを使用して、必要なmsysのツール、ライブラリ等のインストールを行うよう変更するのが、非常に大きな変更点です。
すでに大本ではGitのバージョンも2.1となっていいるのにもかかわらず、Windowsは2.0にもなっていません。これは、Git for Windowsのコアメンバー達が、従来の環境ではなく、このgit-for-windows sdk上で2.0以降のGit for Windowsを提供しようと考えており、現状のGitへの追従よりもSDKの開発を優先しているためです。
実際、2.xに早急に追従していかないことに対する批判もあるわけですが、WindowsでもOSS系の言語やツール利用が増えているなか、msysの役割が増しており、現行のmsysGit/Git for Windowsを放置しておけば、問題が大きくなるばかりですし、いつかはやらなければ無かったことだと思うので、ぼくらは少し気長に待つしか無いようです。
コメント
[…] git-for-windows sdk https://opcdiary.net/git-for-windows-sdk/ […]