Symlink kind changed to file on windows

John Arbash Meinel john at
Fri Nov 20 15:38:42 GMT 2009

Hash: SHA1

Paul Harris wrote:
> Hi,
> I have a project that includes a Ruby on Rails website.  I checked the
> website plus the rails directories in on Linux, and all is well.
> I checked it out in Windows Vista, and I have win32symlink installed, so
> in cygwin, the symlinks actually work.   I don't use them in windows (I
> do other things in the project unrelated to rails), but they work.

Cygwin works because it adds symlinks as a native type as an abstraction
underneath us (not because of win32symlink).

win32symlink is currently broken because it hasn't been updated as we
implemented different code paths for reading/writing/etc files on disk.
I don't think Alexander is planning on maintaining win32symlink.

- From your description, it looks like it still handles the 'write' side,
but it no longer handles the 'read' side. (So you can checkout something
that has symlinks, but you can't status/commit them correctly.)

I don't really know what it would take to fix this. I believe
win32symlinks used to monkey-patch (alter-at-runtime) certain functions
to make it work, and we've now moved some of that functionality down
into a C extension.

Arguably we could pull that sort of functionality into core, but
defining the correct behavior is difficult. For example, you could turn
the symlinks into '.lnk' files, so that it interacts better with other
Windows programs. However, what do you do if: "foo.txt" and
"foo.txt.lnk" both exist?


I'd be willing to review and merge a 90% solution, though. If someone
wants to take the time to think about it. (And probably discuss it on
the list for a little while.)


Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla -


More information about the bazaar mailing list