unisonでファイルのpermissionが保存されない件 (cygwin)

cygwinunix 間の remote の unison で file permission が変わってしまう.
ソースを見てみた.OCaml なので,よくわからないのだが,どうも,cygwin は win32 の一種と思われていて,所有者が writable かどうかしか意味がない,とされているようだ.

ubase/util.ml には,osType というのと isCygwin というのがあって,cygwin だとそれぞれ `Win32, true になる (バッククォートはなんだろう?) のだが,file permission を扱うところは,props.ml にあって,
someHostIsRunningWindows だと,mask を,wind_mask = 0o200 に設定する.このsomeHostIsRUnningWindows は,uicommon.ml で設定されているのだが,cygwinも普通のwindowsも一緒くたにしているらしい.(isWinという識別子が出てくるが,イマイチどこで定義しているのか良くわからない.)
ということで,乱暴だが,props.ml の wind_mask の定義を 0o200 から 0o7777 に書き換えてしまうと,なんとなく動いているように見える.

ついでに,関係あるかどうか良くわからないが,remote.ml で
Unix.putenv "CYGWIN" "binmode";
としているところも
Unix.putenv "CYGWIN" "binmode ntsec";
に直してみた.