msys2を使ってみる

仕事でgitを使い始めてしばらくたった。
windowsのハブられっぷりを感じつつもいい感じになじんできた。
SourceTreeやGitExtentionsを併用しているけども、コマンドラインで済むと簡単だなーと感じ始めた。
10数年前にCygwinを使ったときは遅くて投げたけど、最近はどうなんだろう。。。
ということで調べたところmsys2が良さそうだったので導入してみた。

インストール

msys2のページ(MSYS2 installer)からインストーラをダウンロードして実行するだけ。
非常に簡単。

更新

pacman*1 というパッケージマネージャが標準で付属しているが普通に使うと
「forkできません」みたいなメッセージを吐いてコケる。
インストーラをダウンロードしたページに書いてあるが、まず

update-core

のようにしてシステムのパッケージ情報を更新する。
終了したらいったんmsys2を終了させてから再起動する。
再起動したら、

pacman -Su

としてパッケージの更新を行う。

必要なものをインストールする

適当に必要なパッケージをインストールする。

pacman -S zsh winpty tmux mingw-w64-i686-emacs

とかする。それっぽいパッケージを探すときには

pacman -Ss emacs

とすると「mingw-w64-i686-emacs」というパッケージ名であることがわかったりする。

パッケージ追加したら起動時にエラーがでる

zshの最新版を入れると、起動時に forkが~~ unable to remap とエラーがでる。 適当にググったところ、ashを起動してrebaseallすると良いらしい。 msys2のインストールディレクトリ以下 usr\bin\ash.exe を起動して

/usr/bin/rebaseall

と実行する。

msys2のインストールディレクトリ直下に autorebase.bat があるのでそれを実行してもよい。

起動時のシェルをbashからzshに変更する

msys2のインストールディレクトリ直下に msys2_shell.bat とか mingw32_shell.bat とか mingw64_shell.bat があるので、 普段使ってるやつを書き換える。 ラベル:startmintty が定義されているあたりでminttyを起動しているので、引数に渡しているbashzshに変える。

Git for Windowsの代わりに使ってみる

ファイルの検索、定型的な置換処理等 おおむね良好。 1つきになるのはGit for Windowsに比べて git status が異様に遅いこと。 fscacheではどうにもならないくらい遅い。 msys2でインストールしたgitをアンインストールしてもGit for Windowsのgitは使えるのでそれでごまかそうかな。。。 perlとかいろいろ別途入れなきゃみたいだけども。

 

 msys2のGitは使わないほうが幸せ

MSYS2 + Git for Windows - foohogehoge's blog

*1:個人的にはapt-getよりも好き