[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: symlinks on Windows

From: Nico Kadel-Garcia <nkadel_at_gmail.com>
Date: Thu, 7 Nov 2013 07:13:26 -0500

On Thu, Nov 7, 2013 at 4:24 AM, Thorsten Schöning <tschoening_at_am-soft.de> wrote:
> Guten Tag Ben Reser,
> am Donnerstag, 7. November 2013 um 09:46 schrieben Sie:
>
>> I think nobody has put the effort into figuring out the appropriate way of
>> dealing with this. The obvious thing to do would be to fall back to the
>> current behavior if the permission isn't available.
>
> Subversion could fall back to using junctions if the link target is a
> directory or hardlinks if it is a file. Junctions don't support links
> to things like network shares, though, but it's better than nothing
> and will surely cover 99% of the use cases. Hardlinks have the same
> caveat of course and suffer form recreation of files, like when a file
> gets reverted the former created hardlink to it will get invalid. But
> in theory as Subversion should normally be the on doing the revert it
> could beforehand get all hardlinks to the file and recreate those
> after the revert. Getting all hardlinks to a file is fast operation
> since Vista.

Please,lord, no. tracing the junctions back to where they originally
come from could be really, really awkward.

I'd not noticed the restriction for several reasons. I prefer to do my
development work on Linux, when I'm on Windows I have "administrator"
privileges so other software can work properly, and I avoid symlinks
as part of my source control like the plague since my unfortunate
encounter with the Perforce symlink bug. (One could change a symlink,
record the change, then check out the symlink in a new working copy
and it would be the old symlink: one had to delete, then re-add the
symlink to make it work properly.)

> Of course it sucks that symlinks are restricted on Windows, opposed to
> junctions and hardlinks, especially that Windows itself doesn't use
> symlinks that much at all, but relies heavily on hard links instead.
>
> Mit freundlichen Grüßen,
>
> Thorsten Schöning

Hardlinks inside a source control system are inherently dangerous.
Because the location of the othe rend of the junction is not apparent,
and because changes in one end of the junction would have to be
reflected in the logs of *both* ends of the link, it's begging for
real database pain to allow them.
Received on 2013-11-07 13:17:36 CET

This is an archived mail posted to the Subversion Users mailing list.