How to move a project containing "Images linked to file" which also will also be moved

I have a project with many linked images.

The project and source images are in a sensible relative structure (they’re both held under a single master folder on MacOS which is of around 100GB in total). The project file itself is around 150MB.

I’d like to move this whole enterprise from one disk to another and still have the Scrivener project display the files ok. If I just copy the whole lot and then rename the original location to break any absolute references, I find the copied Scrivener project shows “MISSING IMAGE” warnings with the old absolute path to the source file.

Should I have had different preferences set in the first place to have relative rather than absolute links ? I’ll be doing more projects like this so can fix for next time.

Is there a way of getting the file to now look for the relative location ? (If there is a such a change I can do this in the original, all working, location before moving) ?

I suppose a final option might be - is there a way to convert the whole project to “embedded” images ? I wanted to avoid that while work was in progress to keep the file size modest, but now I’m at the archive stage where the project will only be looked at with no edits expected, that may not be a disadvantage any longer.

You shouldn’t embed them. Use a Compile Replacement rule to convert the pathnames.

Here’s a related workflow:

Image Management

Would that mean I can’t see the images in the Scrivener UI while writing and they only get placed at compile time ?

That would be a big downside for me. The text is a somewhat-academic discourse about the images - it’s my photography degree material. I have no issue at the moment at compile time as Scrivener helpfully places my markdown script with local links to copies of the source files which it has placed in my compile location for onward processing. So that’s all good.

My problem is to move the project and the image source files without having to go through and manually re-link them all.

You said the images are external and linked; if so, they’re already not visible in the Editor.

Conversely, if they’re currently visible in the Editor, there is no pathname mismatch on the second device.

Ah, I think I see what you mean:

  • in my copy project, images aren’t visible because the absolute pathname no longer exists
  • if I add a compile replacement in my copy project, this would substitute the pathname at compile time
  • so by that means I could compile from my copy project but not view it with the images in place

What I’m trying to understand is the limitations of this section of the manual (p398 in the Scrivener for MacOS)

Links on Multiple Devices

If you intend to use multiple devices, it is not uncommon for links to be tem- porarily broken while away from your main computer. It is safe to work around broken links; once you return to the machine that has those images in the de- scribed locations, they will link back up.

You can also choose to store your images in a subfolder located by the project itself. For example if you have a project on your Desktop, you could create a folder called “Blog Images” and store your linked images in there. If Scrivener cannot locate linked images upon loading the project, it will cast about looking for them in the current location. In a way, they will work like relative links do.

That seems to say that if my relative positioning and the type of move I make is within certain limits, things will work as I wish.

Yes, if you have a setup like this, then moving between systems should be painless:

/Users/
  FirstComputer/
    Documents/
      Project Name.scriv
      Project's Images/
        image_name.jpg
        ...

Copy both “Project Name.scriv” and “Project’s Images” folder together into a new location, and upon loading the project it should discover the jpg files.

Worst case though, if it can’t find them and gets confused, it’s no big deal. Follow the instructions in subsection, Fixing Broken Links, within &15.6.4 of the user manual. One quick global search and replace followed by a reload should fix most migration issues.

1 Like

Or a simpler answer. Place your images in a cloud folder on each system. That way you can move between systems and keep the linked images visible.

That does not usually solve the problem, unless someone has the exact same user account on each computer, as the account name is part of the path (indicated by “FirstComputer”) in this example.

Typically the most stable approach is an external drive since that will always have the same path no matter where you take it.

But it doesn’t really matter too much, which is the point of having this kind of self-healing system in the first place. You shouldn’t have to worry too much about it in most cases, so long as you keep your folders together with your project.

I’m assuming you are referring to your suggestion.

The cloud process remains the easiest. I have a Dropbox or similar service project images folder on each computer I use Insert Image Linked To File on whichever computer I’m using at the time. The image appears in Scrivener project regardless of computer or OS involved…

Thanks @AmberV - both the global replace on part of the pathname and re-structuring my storage so that all the linked images are in descendant folders of the one holding the Scrivener project worked perfectly.

My general objective is to be able to work offline - that means my current working project ideally has to be on the main SSD of my laptop and I realised that the total storage requirement for my work will exceed the size of that disc so I need to be able to move them about and this works fine.

One final question from me on this topic - is there a way to search a project for broken links ? I’d love to be able to do a check after a copy.

My general objective is to be able to work offline - that means my current working project ideally has to be on the main SSD of my laptop and I realised that the total storage requirement for my work will exceed the size of that disc so I need to be able to move them about and this works fine.

Here is where external drives may come in handy. I was saying that’s an easy way to get an absolute link that never breaks. When you plug in a drive on a Mac, it always presents itself as /Volumes/NameOfDisk, everywhere you go. Some have even used DMG images for that very same quality (but that was a tactic more common back in the v2 days, when links broke across cloud accounts easily, and there was actually no way to fix them short of going through one by one).

One final question from me on this topic - is there a way to search a project for broken links ? I’d love to be able to do a check after a copy.

The MISSING_IMAGE: part of the warning message is just text as well. Create a collection looking for that phrase, it’ll come in handy if you’re working in a somewhat volatile scenario.