135
votes
Under review

Allow symlinks on Windows and OSX

Editor

-

-

I've been using Symlinks on Windows for months and the work GREAT for me, but now Unity has just announced that Unity 4 will intentionally disable support for symlinks on Windows. They were already disabled on OSX. I've tried to communicate with Unity people that this is a big pain, but the only response I've received is that they "create problems", but I've never heard anything more concrete than that.

Symlinks are incredibly useful because the allow you to share source files between multiple projects. In my case, I'm creating an open-source code library for Unity which I'd like to be able to test AND edit in multiple projects without having to manually copy files or deal with glitchy git submodules.

I'm not even asking for Unity to turn them on for everyone, I'd just like some sort of option or configuration flag somewhere that'll allow users to turn them on intentionally if they need them.

Response-avatar

jonas echterhoff

Oct 03, 2012

Comments (11)

3b44b0782e1f2d93650cde15d819eaec?d=mm
srivello
Aug 11, 2013 13:21

Hi,

Unity3D is frustrating! Why can't we simply use external class paths in our projects? In this free, complete article I discuss using "Symlinks with Unity3D" (a Mac/Windows feature) to trick Unity into respecting distant folders as part of one project.

-Samuel Asher Rivello
RivelloMultimediaConsulting.com

LINK
http://bit.ly/1cVsqyV

Ef8ef6c9c8d2c6448d4260e34303a050?d=mm
glennpow
Mar 09, 2013 23:35

Well it's certainly a shame that they took so long to fix this feature. We've been in danger for years now of being able to use any old source control system we'd like. Thankfully, Unity doesn't want us to hassle with that decision anymore.

Unity's proprietary Asset Server, with it's blackbox architecture, lack of branching, disastrous merging techniques and $500/seat price-tag, still beats having go out there and find a working solution on our own, for free. Who has that kind of time?
Thanks, Unity.

Dc6e3178b871f5658c22ad2fea25c861?d=mm
duke
Jan 18, 2013 14:35

Yeah I'd like to know the status of this too. I appreciate that Unity is making things safe by default, but at least give us a checkbox!

E2bbe31fb94e92f5f404c5cb550c371f?d=mm
dkoontz
Nov 14, 2012 17:37

Any idea how this is coming? Last I heard Jonas was playing around with enabling this option, and this issue is now under review but Unity 4 is now out and it seems symlinks are now DOA on Windows.

F7e3a5fa54066093c682b1627dbe5f1e?d=mm
darnisock@gmail.com
Oct 06, 2012 00:22

I made the same request several months ago: http://feedback.unity3d.com/unity/all-categories/1/hot/active/symlink-support-on-os-x

This would allow us to work much more efficiently across multiple projects. I'm totally down with leaving symlinks disabled by default, provided teams (like mine) who actually want them enabled have some way to do so! We realize the burden of using symlinks responsibly is on us.

E2bbe31fb94e92f5f404c5cb550c371f?d=mm
dkoontz
Oct 05, 2012 02:58

I cannot stress enough how much this would screw over our group. We have a large project spanning multiple sub-games each of which shares a lot of art assets. We have been successfully using symlinks for almost a year now with ZERO problems. In fact, the only problems we've had is the TREMENDOUS amount of pain in creating a workaround to replicate a symlink type system on osx. For anyone who might bring it up, rsync works one way, but not two way (at least not without a bunch of corner cases with regards to multiple repository check in order and having your files get deleted out from under you). Our team members on Windows have had absolutely no problem with their setup and they are working on multiple projects, all linked to the same shared art repository. I would love to talk to anyone from Unity who wants to know more about how we're using symlinks with absolutely no problems.

I also echo the sentiment that I'm fine with symlinks being off by default but able to be turned on with a command line switch or preference. We're big boys (and girls), and can deal with not shooting our foot off.

08733877f62fda7ef4ae8bdd9b55c8f0?d=mm
jonas echterhoff
Oct 03, 2012 08:02

Some background:
Symlinks were always disabled in the Unity editor in OS X. The reason is that there are many corner cases, most of which we cannot safely protect against:

-Recursive symlinks making Unity's project import stuck
-Folders being shared with multiple Unity projects open at the same time
-Folders being shared with multiple Unity projects using different external version control settings
-Folders being shared with multiple Unity projects using different Unity versions
-An accidental symlink adding a large part or all of your filesystem to the project, thus importing forever, and spreading meta files all over your hard disk.

The reason this worked on windows, is that the function to check if a folder is a symlink was not implemented with a "To do" comment so far. That we fixed for 4.0.

Now, considering that people say they have been using this successfully so far, I understand how this change may annoy people. I'll experiment with allowing symlinks on OS X and windows, and simply add warnings about this when they are imported.

Eab8ac4eefca7dc1545aca182eb1494f?d=mm
Jaimi
Aug 23, 2012 14:57

Use junction points instead. Problem solved.

E6190ec0ebd81aa892dab036f9400a53?d=mm
alexfeature
Aug 22, 2012 18:54

Oh well.

Abf7b4a0795169d2a4f65d0f9529adbc?d=mm
Izitmee
Aug 22, 2012 18:19

Used almost all my remaining votes for this. Symlinks were already a clumsy fix to Unity's inability to deal with external classes. But removing them is pure evil.