Software Carpentry
Setting Up Cygwin

Cygwin is a Unix-like environment for Microsoft Windows that provides both a shell and most of the standard Unix command-line tools (including Subversion). The instructions below describe how to install it.

First, go to http://sourceware.org/cygwin and click on the "Install or update now!" link to download setup.exe. When you run this, it displays:

[Hello]

Click "Next", and choose "Install from Internet":

[Install From Internet]

Next, specify where Cygwin is to go (I always use a folder called \cygwin, but you can put it almost anywhere):

[Root Directory]

Next, you must tell Cygwin where to store information about the packages it has downloaded. This doesn't have to be under the directory you chose in the previous step, but putting it there makes management a lot easier:

[Package Directory]

Now you must tell the installer how to connect to the Internet. In most cases, this will be a direct connection, but if you're behind a particularly stringent firewall, you may need to specify a proxy. Try direct connection first:

[Direct Connection]

You now have to choose which site to download packages from. I find that the Argonne National Laboratory is pretty zippy, but there are dozens of others:

[Choose Download Site]

The installer now grabs a list of available packages, and displays it in this rather clumsy way:

[Select Packages]

Open the "Devel" package:

[The Devel Package]

scroll down, and make sure that the entry for Subversion is checked:

[Selecting Subversion]

When you click "Next", the installer will start downloading packages and installing them on your machine. When it's done, it will ask you if you want a desktop icon and/or a Start Menu entry. (I usually create both.) You can then click "Finish".

At this point, you should have a Cygwin icon on your desktop:

[Desktop Icon]

Double-clicking this will run a shell, into which you can type commands:

[A Running Shell]

There are dozens of other useful packages in Cygwin, including TeX, a version of Python, and the Apache web server; you may find many of these useful.