Darcs is a native Windows console program, it doesn’t use the Cygwin or MSYS libraries. This has some consequences, and affects which shell environments work best with darcs.

We recommend running darcs in one of the following ways on Windows:

  • Ordinary Windows CMD shell
  • Cygwin shell with CYGWIN=notty (or CYGWIN not set to anything)
  • console2 also seems to work here
  • MSYS without rxvt
  • you can rename rxvt so that msys.bat only launches sh under the DOS prompt
  • or you can run C:\msys\1.0\bin\sh --login -i under console2)

These other shell environments don’t work as well with darcs:

  • MSYS rxvt shell
  • Cygwin bash shell with CYGWIN=tty
  • Cygwin xterm or rxvt
  • Emacs shell buffer

The main reason is that in these environments if you hit control-C to terminate darcs, it won’t be able to catch the event and clean up. The usual result is that the _darcs/lock file is left behind and has to be manually removed, but worse things could happen.

There are other side effects: in an interactive conversation with darcs, you’ll have to hit return after each answer, whereas in a standard Windows console darcs can see the keystroke as soon as you press it.