Jump to content

Symbolic Link and Directory Monitoring in Unity


marcuslelus

Recommended Posts

Hi, 

A bit of context: I'm using Unity and I have this Master project / repo. I then have many Content projects that use this Master as an xlink and they can implement project specific assets in a folder called "content". Now, I don't want this folder to be pushed to Master, but I want the content repos to keep track of it, so I'm using a Symbolic link. Outside of the xlink, I have a symbolic link pointing to "content" (let's call it "content-link"). Note that I ignore "content" and only keep track of content-link, as shown below.

#1
Content repo:

  • content-link (points to content)
  • Master (xlink)
    • Assets
      • content (pointed by content-link) (also ignored by this repo)
        • ...
  • ignore.conf (ignores Master/Assets/content)

My problem is that when I add a file in "content", Plastic doesn't refresh and I actually have to close it and reopen it. If I do that, it works and I can see the new file in "content-link". This is problematic since I can't ask my team to do this every time they have to push.
What I did instead is invert the link, like so:

#2
Content repo:

  • content (pointed by content-link) (also ignored by this repo)
  • Master (xlink)
    • Assets
      • content-link (points to content)
  • ignore.conf (ignores Master/Assets/content-link)

It all seems pretty good, since now the real folder is "content" and so the System watcher can pickup the directory change event. 
The new problem is that the symbolic link is now inside the project and Unity doesn't like it. It's new "directory monitoring" gets disabled when it detects a symbolic link and so the reload time is pretty bad for us right now. 

So, 2 things:

  • #1: On one hand, I can have the directory monitoring enabled, but must restart Plastic every time I need to checkin.
    • Good performance in Unity
    • Very bothersome workflow
  • #2: Or I can have the directory monitoring disabled in Unity, but I don't have to restart Plastic before checkin
    • Bad performance in Unity
    • Seamless workflow

So my question is: I want to be able to use Directory Monitoring in Unity, but not with the cost of having to restart Plastic every time before checkin. Is there a way to do this? 

As I understand it, symbolic links are not yet supported for Windows (even though it's been requested 7 years ago)... Or if the are supported, they do not monitor the pointed directory (with the System watcher).

Link to comment
Share on other sites

Hi,

Do you have this repo structure in some Plastic cloud organization? I'm guessing if you can temporary invite my user (calba@codicesoftware.com) so I can directly check your same repo structure with XLinks, symlinks... and debug it.

You are right that Windows Junctions/symlinks are not supported but it would be great to review your current repo strcuture for provide some feedback.

Regards,

Carlos.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...