Cygwin is not perfect, but he's the thing that I prefer over other options.
It's unix emulator layer, and as such tries it's best to emulate fork() - which the other alternatives does not even think to put in.
VM is not a real alternative, as there is actually more work to be done to plumb source A with tools B from the VM.
I don't use cygwin from bash, but rather start it directly from the FAR manager (console based Norton Commander/Midnight Commander application for Windows). It's very useful, as a lot of commands just work.
Then there are others, which are some kind of symlink (one of the downsides of cygwin for me), but that's understandable. Symlinks as they are on linux are just starting to appear on Windows Vista and 7 (and I'm not even sure how compatible they are).
So for such cases, sh -c would work. For example checking out latest SDL using cygwin, but from the command-prompt:
c:\p\sdl> sh -c "hg pull -u"
And then other stuff works even better:
c:\p\libzmq> git pull -u
c:\p\libzmq> sh -c "gitk --all"
Thanks a lot! SysInternals, NirSoft tools and anything that I can find for Windows is very very much appreciated. (At home I'm sticking to OSX and Ubuntu, but at work the situation is rather different - I'm often finding myself arguing with myself - at home I prefer gnome/gtk, at work I better stick to Windows.Forms, hehehe).
It's unix emulator layer, and as such tries it's best to emulate fork() - which the other alternatives does not even think to put in.
VM is not a real alternative, as there is actually more work to be done to plumb source A with tools B from the VM.
I don't use cygwin from bash, but rather start it directly from the FAR manager (console based Norton Commander/Midnight Commander application for Windows). It's very useful, as a lot of commands just work.
Then there are others, which are some kind of symlink (one of the downsides of cygwin for me), but that's understandable. Symlinks as they are on linux are just starting to appear on Windows Vista and 7 (and I'm not even sure how compatible they are).
So for such cases, sh -c would work. For example checking out latest SDL using cygwin, but from the command-prompt:
c:\p\sdl> sh -c "hg pull -u"
And then other stuff works even better:
c:\p\libzmq> git pull -u c:\p\libzmq> sh -c "gitk --all"