Windowsでrsyncをインストールする方法はいくつかあって、一番簡単なのはmingw-getでパッケージとして導入する方法。またはrsyncは諦めてChococaltely経由でcwRsyncパッケージをインストールするのが簡単。両者ともrsyncのためだけに入れるには大仰なので、既に導入されているGit for WindowsにMinGWパッケージと手作業で混ぜてインストールするのも悪くない。
必要な物は以下の4つの実行ファイルとDLLファイル。
rsync.exe
(rsync-*-bin.tar.lzma より)msys-iconv-2.dll
(libiconv-*-dll-2.tar.lzma)msys-intl-8.dll
(libintl-*-dll-8.tar.lzma)msys-popt-0.dll
(libpopt-*-dll-0.tar.lzma)それぞれのLZMAアーカイブには必要になる実行ファイルかDLLファイルだけしか含まれていないので、7-Zipなどで展開してGit for Windowsのbin
フォルダー、つまりmsys-1.0.dll
があるフォルダーにすべてコピーするだけで良い。コピーしたらGit Bashを開いて以下のようにちゃんと実行できるか確認してインストールは完了。
$ rsync --version rsync version 3.0.8 protocol version 30 Copyright (C) 1996-2011 by Andrew Tridgell, Wayne Davison, and others. Web site: http://rsync.samba.org/ Capabilities: 32-bit files, 32-bit inums, 32-bit timestamps, 64-bit long ints, socketpairs, hardlinks, symlinks, no IPv6, batchfiles, inplace, append, ACLs, no xattrs, iconv, no symtimes rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the GNU General Public Licence for details.
アンインストールは上記ファイルを削除するだけ。あんまり混ぜるの良くない感じするけど、最近のMinGWパッケージ群はコンフリクトしづらいようにできているので、多分大丈夫。ちゃんと何をコピーして混ぜたかをメモしておくくらい。
Grunt経由でrsyncするプラグインはいくつかあったけど、なんかイマイチだったので自分ででっち上げたものを使っている。デフォルトでは-n
でDRY RUNで動く安心設計。
Download: grunt-rsync.js
src
を解釈して特定のパス以下をdest
にミラーみたいな使い方はできないようにしているので、常にGruntのルートをoptions.remote
で指定した先にミラーする。デフォルトのCLIオプションは-aC --exculude-from=.rsyncignore
としてあるので、無視ファイルは-C
により有効になるマスク群とグローバルな.cvsignore
、最後にGruntのルートにある.rsyncignore
を組み合わせて指定する。
rsync: {
options: {
remote: 'user@example.com:~/Sites/example.com/'
},
main: {
dry_run: false,
sync: true,
progress: true
}
}
sync
オプションを有効にすると--delete
が追加され同期モードに、progress
オプションを有効にすると--progress
が追加され転送の詳細が確認できるように、それぞれなる。上述の通りデフォルトはDRY RUNなので、明示的にdry_run
オプションを無効にする必要がある。stdio: inherit
でspawn()
するので、実行結果はGruntの出力と混ざる形で表示される。