Issue 820 wishlist: manage symlinks under version control

Title wishlist: manage symlinks under version control
Priority wishlist Status given-up
Milestone Resolved in
Superseder Nosy List ashmoran, darcs-devel, dmitry.kurochkin, kowey, thorkilnaur, tommy, xancorreu, zooko
Assigned To

Created on 2008-04-28.22:51:14 by zooko, last changed 2017-07-31.01:56:36 by gh.

msg4375 (view) Author: zooko Date: 2008-04-28.22:51:11
Zandr the Operations/SysAdmin says that darcs ignoring symlinks "Makes it
challenging to use darcs for system administration tasks.", or words to that effect.

I think that there are at least two reasons why darcs has not yet added a
feature of managing symlinks.  One is that it raises questions about portability
to Windows and another is that it raises questions about security (if symlinks
point to a target outside of the repository, or to a file in the repository that
is not under version control?).

However, the other modern revision control tools seem to have evolved solutions
to these problems which are satisfying to most users, so perhaps we can learn
from them.  This seems like one of those wishlist items that is going to keep
coming up.

Here are a few hits from googling for "darcs-devel symlinks" and "darcs-users

msg8516 (view) Author: kowey Date: 2009-08-26.16:05:34
Just adding a research note on how deals with symlinks:


Note in particular: "BTW. If you are on filesystem like FAT that does not
support symbolic links, and your repository uses them, you can set core.symlinks
configuration variable to false, and symlinks would be checked out as small
plain text files that contain the link text"
msg8517 (view) Author: kowey Date: 2009-08-26.16:21:22
The current FAQ suggests to simulate this by version controlling an
update-symlinks.sh script.

# example update-symlinks.sh
ln -s foo/quux bar
ln -s foo/wibble wibble2

# example _darcs/prefs/defaults
ALL posthook sh update-symlinks.sh

But posthooks do not propagate.  It might be useful to have some sort of
posthook-style pref that does propagate, which would also be good for
"version controlling" file permissions.
msg11091 (view) Author: ashmoran Date: 2010-05-20.14:41:25
I'd like to vote for this one.  I've tried to use symlinks before and hit 
this problem.  A project I started on recently has ended up with a load of 
duplicate files because darcs added them twice.
msg16895 (view) Author: xancorreu Date: 2013-07-10.10:06:15
I vote for this too. Modern filesystems have symlinks. It's annoying fact 
to not allow symlinks in darcs. Just threat as binary file, isn't?
msg18404 (view) Author: god Date: 2015-05-16.20:16:29
I think note about window$ portability is completely irrelevant - due
inadequate filesystem there are plenty of features unsupported in there,
even such a basic thing as creating directories with some names. It
doesn't imply that darcs should not be able to handle those directories.

I think simlynks should be treated exactly the same way as adding
directory 'aux' is treated now: warn user and let him decide by
overriding warning with --reserved-ok

And of course there should be option to override this 'default warning'
globally in some configuration file.
msg18405 (view) Author: god Date: 2015-05-16.20:17:54
Also, I think it should be tagged bug instead of wishlist - every modern
version control system is capable of handling symlinks.
Date User Action Args
2008-04-28 22:51:14zookocreate
2008-08-13 00:55:47markstossetstatus: unread -> deferred
nosy: tommy, beschmi, zooko, dagit
2009-08-06 21:03:28adminsetnosy: + dmitry.kurochkin, simon, kowey, thorkilnaur, - beschmi
2009-08-11 00:11:47adminsetnosy: - dagit
2009-08-25 18:10:21adminsetnosy: + darcs-devel, - simon
2009-08-26 16:05:37koweysetnosy: tommy, kowey, darcs-devel, zooko, thorkilnaur, dmitry.kurochkin
messages: + msg8516
2009-08-26 16:21:24koweysetnosy: tommy, kowey, darcs-devel, zooko, thorkilnaur, dmitry.kurochkin
messages: + msg8517
2009-08-27 14:33:31adminsetnosy: tommy, kowey, darcs-devel, zooko, thorkilnaur, dmitry.kurochkin
2010-05-20 14:41:26ashmoransetnosy: + ashmoran
messages: + msg11091
2013-07-10 10:04:35xancorreusetnosy: + xancorreu
2013-07-10 10:06:17xancorreusetmessages: + msg16895
2015-05-16 20:16:30godsetmessages: + msg18404
2015-05-16 20:17:56godsetmessages: + msg18405
2017-07-31 01:56:36ghsetstatus: deferred -> given-up