I just upgraded to Scrivener 3 (Windows) and over all my projects were converted from 1 to 3 splendidly. But now I realised that my bookmarks (or references as they were called in Scrivener 1) didn’t come over!
Did anyone else have this problem or is it just me? It seems to be just me as I couldn’t find this topic elsewhere in the forum.
Does anyone know an easy solution? (Something like “Scrivener 1 saved your references here, Scrivener 3 saves your bookmarks there, go copy and paste” or “push this magical button”.) Because I could look them up opening the copies of my projects in Scrivener 1 and then put them into my Scrivener 3 projects manually but that would be a lot of work as I have lots of bookmarks…
Thank you and happy new year!
Should be in Project/Document Bookmarks in your Scrivener 3 project.
Yup. Should be there. Aren’t there. That’s the problem I described.
Thanks for the report. I see that internal references, pointing between binder items, upgrade correctly but external references do not. I’ve added this to the priority bug list.
Okay - so I figure I need to do this manually? In this case I’d like to ask where or how I can find the Scrivener 1 copies of my projects because it said they would be saved in the same file as the upgraded project but I can’t find them. Do they have some special naming like “scrivener 1 version”?
Yeah, I was trying to think of a way to do that easily when I responded before, but couldn’t come up with a good solution since copy and paste or drag and drop doesn’t work between programs. So I think it would be a matter of manually doing so with old version of the program loaded with the backup copy of the project.
And as for that, when you upgrade a project it creates a backup copy right in the same directory, so you should see a copy of the project with “Backup” in the name—that is the old v1 version. You can open that directly in the old version of the software. Best way is with
File ▸ Open... since installing v3 would have claimed all .scrivx files for itself.
That said, if you’re handy with a coding editor and XML, you could probably save yourself a fair amount of work by editing the .scrivx files directly (I would strongly recommend backing up both copies to .zip files before doing so).
If you search the old .scrivx for
<References> you’ll find how they are set up, and likewise searching for
<Bookmarks> in the new .scrivx shows the new methods. Fortunately the format is very similar, for example here is a v1 Reference to our website:
And here is the same as a bookmark in v3:
So for project references/bookmarks, and lists of document references, you can sort out most of this with a simple search and replace. The more labour-intensive part will be finding the individual binder items since the internal IDs will have changed. In most cases looking for Titles will do the trick though.
Thank you! I found the backup files with the Scrivener 1-versions and finished now transmitting my bookmarks for one project. I’ll add the rest of my projects slowly and steadily.
I’m an absolute noob at programming but with the good old copyying and pasting of titles and links it’s okay too. Took me about two hours for the first project and most of my projects have less bookmarks than this one. You can see it as a relaxing self care, listening to some soothing music while doing it!
But if anyone in the future has the same problem (which I don’t hope of course) and “is handy with XML” it’d interest me if that really saves any time because for me it sounds extremely complicated. xD
Oh my goodness. I’ve just found I must have the same problem. I moved a project over to Scrivener 3 back in February. And today I find it has no external bookmarks. What can I do to restore them? I have the back-up from the conversion (and many others), but I have been working on it since, so there are many additions and changes. How can I get the bookmarks back? There are 2,500 pages or so, maybe 25% with bookmarks.
Could you clarify what you’ve already tried, and why it isn’t working? I posted two different ways of doing this in my last post.
And just to update the thread more generally, this problem has been fixed internally at this point. I can no longer reproduce it using test builds. That won’t help anyone that has significantly edited a project since it was updated though, since going back to the backup and updating it would revert months of work.
I haven’t tried anything yet, I was waiting for a reply from you.
I’ve read your ‘Advanced Workaround’, but I do not really understand it. I can certainly have a go at editing the .scrivx files, but I’d like a clearer understanding of what is involved before I start.
This is a very serious issue for me. I have hundreds of pages in my project with up to a dozen references in each. If what you are suggesting means going through an xml file, matching up the old page and the new, and then adding in each bookmark individually - well, that would take weeks and would be near impossible to do without errors. I would need some way of automating, or semi-automating the process.
And as you say, going back to the project before it was updated to Scrivener 3 would undo months of work.
The simpler option is to just install the old version, and open the old backup alongside the current working version and add the bookmarks to the new version using the data from the previous version. As I noted, there is no copy and paste or drag and drop available, so it’s a matter of creating the bookmark and copying and pasting the URL and title.
To put it simply:
- If editing XML files is easy for you, then it’s way easier to bring the bookmarks over that way, because it’s text editing basically. You aren’t limited by the GUI, and can copy dozens of lines at once. One with scripting knowledge could probably even automate it.
- But, if editing XML files is way too much though, then you have the GUI, which is at that point arguably easier than learning how to read markup on the fly. It’s limited because you can only do one at a time though.
[quote=“AmberV, post:12, topic:125288”]One with scripting knowledge could probably even automate it.
Surely that should be you. One of Scrivener’s major selling points, and a big reason I’ve been using your software for over ten years now, is that the writer’s material is safe. But it turns out that this ‘upgrade’ to V3 may have lost me a key part of my work - probably thousands of references across many hundreds of pages in several projects.
I also see that you were aware of this issue back in January. Why did you not alert us not to upgrade to V3 then?
Im trying not to panic here, but this looks like a devastating loss for me. It represents years of research time. Surely you should own this problem, and write some kind of script that recovers this lost material.
I am just reporting what I know, writing up the bug tickets, and offering suggestions for what looks like the best way to fix the problem on your side of things. I personally don’t have a good way of fixing that problem or encouraging a retroactive fix, whether that be a script or something else. The most I can do is post a high priority bug, which was filed, and as noted above, has already been addressed, so that it doesn’t happen going forward, once that patch is put out.
By ‘you’ I mean L&L rather than you personally, if this would be outside your role within the company.
Please escalate this to whatever level it takes (is that Tiho? Keith?) to get a commitment that L&L will do whatever it takes to retroactively fix this. This does not appear to be a small problem, or the usual kind of bug. It goes to the heart of the software’s trustworthyness.
Hi. Any news on this?
After not getting any reply here, I took this problem to technical support, and had a frustrating exchange there - that I understand you, Amber, were cc’ed on - that once again batted away L&L’s responsibility for this issue.
The bottom line here is that your software has caused a disastrous loss of data that you could easily have avoided. You knew on Jan 1st when this thread was started that upgrading from V1 to V3 will definitely erase all of a project’s external references. Because you did not alert users to this, when I upgraded in February, I lost many hundreds, possibly thousands, of bookmarks, that represent years worth of research work.
This is not a problem that I can solve. I have substantially added to my projects since the upgrade. Going through the project’s xml files, matching up the hundreds of current and the back-up pages, and then manually identifying and adding in the lost bookmarks is too long and error-prone a task to reasonably expect a user to do. But this is a problem that L&L could solve, by writing some software that would go through the existing file, match each page against its corresponding page in the back-up, and add in any missing code. You suggested that I do this in one of your posts, but I do not have the scripting skills.
I have been active on this forum for over ten years, and have seen, and received, a very high standard of support from L&L. But in this, case, your only response has been to say that the technical staff do not communicate with the support team. Frankly, that just looks like an odd way of avoiding responsiblilty.
If you are not bothered by the damage this does to Scrivener’s reputation for reliability, I can only appeal to your sense of fairness. You broke it, so you should fix it. Please help.
@simeva, it’s a holiday Sunday here, but I did look in, and I remember your name from long before, and that I’d noticed your request about this, a month ago.
So, I’ve had a look, in some detail as that’s what it takes.
I’d hoped it might be possible to gin up something in a high capability scripting tool like awk, which you could run. But I think that’s not to be, even though I found a quite good one specialized to xml, ‘XMLStarlet’.
I ended up writing a lot of information here over a couple of hours investigation, but I will summarize, and leave you with a proposal.
the information we’re concerned with is all in one file, the .scrivx file at the top of the project folder
this file’s big problem, we could name as ‘context’. References or bookmarks are placed within their binder item ‘blocks’, most of which are contained in others (folders/documents as nested blocks).
this is why a program solution is more possible and safer than any scripting would be. A programmer would look at this and say, give me an hour or two. But the truth of a fully capable, fully safe, and well tested program is that it would be a week of work, and more than one person involved.
thus the sensible way, and accounting for risks, is that it become part of a Scrivener update, and for all sensible reasons beginning with the sure actual exhaustion of the Win team, this isn’t to happen tomorrow.
besides all the analysis first behind this, you’ve indicated you’ve been working since conversion, and likely have moved items around, renamed them, etc… So there’s even more complication and handling, to try to find where the contexts are, or safely let you know enough details if not found.
At this point I considered some other solutions, let’s not enter that path :), and came up with this one.
Say you have or reinstalled the Scrivener 1.0 program, which is quite happy to coexist with Scrivener 3, as they go into different places.
Then consider what your missed References to become Bookmarks really are: web links. I think from what you said, mainly; and perhaps some local files on your PC/laptop as well.
Then if we use drag-drop sensibly, I think we can get the actual bookmarks reinstated quite rapidly…and use the best intelligence of where they need to go, which is yours.
Open both Scriveners, each on the version of the project that suits them. Set the Bookmarks area of each visible on its Inspector. Open your web browser, and arrange windows so you can see the top of it, and the Bookmarks/References hot spot where you can drop, on each Scrivener.
Then in turn, go to each document with References , so it’s visible in both programs. On Scrivener 1, simply double-click each reference you want to transfer. That’s the trick that makes this fast…
Once the web page is open, pull its drag spot (lock icon, etc.) over to the Bookmarks area in Scrivener3
Repeat for as many bookmarks and pages as you want in a session. I estimate you have 500 pages with bookmarks, so probably a reasonable few of sessions.
I’ve realized this method will get you titles for the bookmarks automatically, which is another big help.
Now, there are caveats.
you’ll be a little slower on a few, where you’d have to figure out about deleted, split, or moving pages, to have a revised destination, if required.
References which are files are going to open them, but then you have to get their location, and drag the file over from there to Bookmark it.
do use @AmberV’s good thought above, to make safely unopnable zip copies of both old and new projects before beginning, and to notice which project should be opened by which Scrivener.
I think that’s the best I can offer, with some comfort it can work.
Except the one thing always to begin with, actually, in years of broad consulting, and just because we are all persons, always and here.
This is to acknowledge your problem, and the senses any person would have with it, appreciate those feelings, and let them guide.
I think there are stories enough behind both reticence and delays, and they are very human as well as practical. So we do what we can, and look for the practical of our own.
As always, your writing itself, is the important thing.
If a full task or two as this can’t work, there’s one more way to proceed, I visualize, and that’s to simply keep the two copies of your project, old and new, open on their own Scrivener windows as you work.
When you need or want to see about references, look at tthe page in the old project version. The links you can double-click will always be there…
…and if you can take a moment after making use and keeping your continuity going, you can pull the links at that time into your present work’s Bookmarks, just the ones and when they are needed, from the original sources you’ve now got open.
Hoping some part of this helps, @simeva,
Thank you, Clive, for this detailed and engaged reply. I’ll have time later in the week to go through what you suggest, and I’ll get back with what I find.
Many thanks again for taking the effort to do this.
Most welcome. A few edits to make just a little clearer this morning, especially that last suggestion, and a smile
Mainly we have been trying to make it clear that the problem and request for solution have been conveyed to the developer. It is perhaps a point of interest that they have been on leave for the entirety of this conversation with you, as well.
But narrsd had a good point above, that I meant to bring up too: do bear in mind that it is way more complicated for us to create a tool to fix it than for an individual. A script that fixes one project can be very specific, very simple. We have to build a whole kitchen when we build something, because it needs to work flawlessly across hypothetically tens of thousands of projects, from all eras of usage. Then there is the packaging of it, making a GUI since most people would throw their hands up and yell at us if we made a command-line tool. Then there is testing, which takes a lot of time. Do we need legal to look at it and make sure our EULA covers us from someone blowing up both the backup and the new copy in the unfortunate case that happens? In short we might do this, but don’t expect something tomorrow.
Maybe I’m wrong, and it wouldn’t be too much of a bother to put something together! I’m mainly attempting to temper your expectations here with worse case stuff—and the variables involved are also why I have made no promises.
And maybe give the .scrivx files a try, if you work on copies it is risk free. It may look intimidating at first, but when you get down to the brass tacks of it, what we’re really talking about here is copying and pasting “paragraphs” or lines of text from one file into another. It’s actually no more complicated than that. We might be using lines with a lot of punctuation in them instead of prose. We might be pasting random letters and numbers such as 50FDC127-98C9-43E5-AD2E-1FD95C6A46D6 into the search field, to look for where to paste, instead of a sentence—but it’s the same thing as copying a list from one subsection of one file into another, in a word processor. It’s the kind of mind numbing task we’ve probably all done numerous times in our lives. It isn’t fun, but sometimes it’s the best way to go.
Try it with two copies of the projects, with one single binder item. Copy and paste the bookmarks over search and replace to rename
<Bookmark, save it, open the project, and see if they pop up in the inspector. Small successes like that can boost one’s willingness to continue down a path.
In the meanwhile we’ll look into it, we will. I don’t think it is out of line in the least to suggest the above though. Whenever I’ve run into a problem with the software I use, I fix it. Does it suck when it happens? Of course. But like the person that posted above, I find an efficient ritual, I put on my headphones, find some good tunes, and get it done and get back to work.