I have recently started exploring DVCS - distributed version control systems.

The power they offer you as a developer is amazing, especially if you use them with a patch management solution like quilt. The ability to juggle branches and patches with almost zero cost is extremely empowering. (At the same time, it’s also dangerous. It’s a power tool, so don’t use it if you’re not feeling your current version control is limiting you).

Obviously, I like using the most powerful tools for my professional work, too. There are two limiting factors here. One, everybody is using Perforce. Two, we’re running under Windows.

Obstacle #1 can be overcome by running a tool like Tailor which allows you to migrate changes between version control tools. #2 is a much bigger hurdle. Let’s take a look, shall we:

The three main options for Windows are git,Mercurial and darcs. All three of them have Windows versions. With a big but:

  • GIT While it does have Windows executables, it relies a lot on shell scripts. Which means it needs to run in a cygwin environment, which is sort of the worst of both the Unix and the Windows worlds. In other words, it’s a pain to actually run it.

  • Darcs

    Seems to run fine under Windows, but sometimes relies on external programs. (WGet/Curl being one). And there’s no list of external dependencies. I’m certainly not basing my daily work on a tool that suddenly might stop to work, just because I’m missing a dependency

  • Mercurial

    Seems fine. It has a Windows executable and works out of the box.

So it seems like Mercurial should be the tool of choice. Except, we need Tailor to run. Now, it does support Mercurial out of the box, but it expects the Python version of Mercurial - not a precompiled executable.

Sounds easy, right? Just get python, get Mercurial source, and install it. Except…

Mercurial wants to compile some native modules, and they need to be compiled using the same compiler that the Python interpreter was compiled with. And wouldn’t you know it, in the year 2008 Python is still not compiled with VS.NET 2005 - we’re stuck with VS2003. (What the heck?)

So basically, I’m stuck. Advice so far: If you’re on Windows and don’t need Tailor, get Mercurial - it’s the least amount of hassle. If you need to interop with Perforce or another VCS, you’re completely out of luck.

Commentary

  1. Daniel Waechter wrote on 24. Apr 2008

    There is also an msys version of Git available, which is rapidly becoming quite pleasant. No Cygwin required.

    http://code.google.com/p/msysgit/

  2. Groby wrote on 24. Apr 2008

    Hi Daniel!

    I’m indeed running the msys version, but so far it still requires a bash bastard to run - no chance to run it from the dos command prompt, drives get treated as subdirectories. That’s not really a Windows version for me. (I’ve got to sell it to a bunch of dyed-in-the-wool windows people, so it’s really not an option yet)

Leave a reply