Error Saving JavaScript Files to SharePoint Mapped Drive – Minor Version Overload
This is a first. I was editing away in Sublime Text today and suddenly I couldn’t save my code to the mapped S: drive I was using in SharePoint 2013. S: is for SharePoint. Get it?
The error message on the PC side wasn’t all that helpful, as one might expect. (Sorry for the crappy captured image.)
The files I’m editing are stored in:
http://[Server Name]/sites/[Site Collection Name]/_catalogs/masterpage/_[Client Name]
I’ve found that putting all of my project artifacts in that one location works well because I can easily copy and paste from one environment to another, as needed. I have a folder per artifact type, such as
Master Pages, html, js, css, Display Templates, Page Layouts
etc. I know someone is going to tell me what a horrible idea that is, but it’s not horrible if it works. And it works.
I’m editing within a virtual machine in VMWare Workstation running Windows 8.1 because I can’t connect to the client’s VPN with Windows 10. I originally was using a HyperV VM, but when I installed the production release of Windows 10, that went defunct on me, too. (Yeah, all that’s a mouthful.) Given all that, a restart of the VM seemed like a good idea.
No joy.
The next thing I thought of was that the disks might be full on the SQL server. I’ve seen that wreak all sorts of havoc in the past. But my admin buddy told me everything was humming along and healthy.
My next move was to download SharePoint Designer onto the VM and try editing the files there.
Aha! When I tried to save my edits, I got this message, which I had never seen before:
Because my files are in the _catalogs/masterpage folder, we inherit versioning and Check In/Check Out. That’s a good thing because I can always restore an older version if something dreadful happens.
Clearly this has been a project with a lot of Ctrl-S action. It turns out that I had 510 minor versions on one file, and that’s the limit. Nada mas.
As soon as I published a major version (in this case, the magical 1.0), I was back up and running.
Yeah, I probably should clean out all those old versions at some point, but disk is cheap.
BTW, this is a really cool project where I’m using KnockoutJS, KO,mapping, fontawesome, jQuery, jQueryUI, jQuery.cookie, fullcalendar, MomentJS, and more. It gets us a pretty and highly useful veneer over basic SharePoint functionality to match the business needs as exactly as possible.
I have done this many times, Marc. The first time was quit baffling and threw me for a loop. Very good note for people as I’m sure we’re not alone.
Thanks for sharing. I find it amazing tht spd generated a message that you had never seen before, it sure would be nice if Ms would give warnings before limits are reached
“KnockoutJS, KO,mapping, fontawesome, jQuery, jQueryUI, jQuery.cookie, fullcalendar, MomentJS” – sounds great! Any chance we could get sight of an example and insight to how this works for you, some time soon?
Bill:
I have what I feel is a pretty cool way to use all of that together with RequireJS to manage entire applications. Note I did not say Apps or Add-ins. It’s a different way to think about deployment. I’ve been thinking it’s about time to release those ideas into the wild…
M.
That’s why leaving the files as minor versions is a very bad practice! And it is very easy to check-in multiple files as major versions using the Content manager in the Site Settings. This was just laziness that lead to this. Should never have 500 minor versions of a file, or 500 files at 0.1 version.
Tom:
While I see your point, note that I’m storing the files in a folder under _catalogs/masterpage. That folder has minor versioning turned on for good reason, and I actually want it on so that I can recover from any change I commit.
In a dev scenario with a lot of iteration, it isn’t such an unusual scenario to have hundreds of saves. I’ll stick with my methods – they work very well for me – and you can stick with yours!
M.
Thanks to Google I found your blog.
I experienced exactly the same, but multiple month of ongoing developing (on a script file) have gone by since the last published version. Now I don’t want to publish some minor version, because it may contain real errors. I then deleted all of the minor versions, but SP doesn’t allow me to delete the last minor version. How to go from here? I can’t save a new version of my script (the exceeded error). And I can’t republish the published one.
thanks,
Martin
@Martin:
Good question! If you didn’t care about the version history, I’d say just delete the file and start anew.
How about this? Copy the last published version and the current version into notepad. Next, publish a new version. Immediately edit and publish a new version with the last published version. Finally, edit and paste in the current version.
M.