We have document libraries with unlimited versioning enabled for years. As part of regular auditing Version History Size Report for Entire SharePoint Web Application , found many documents have more than 100 versions! In order to free up more database storage space and for better performance, We understand that we'll have to disable or limit versions.
Although, versions are very useful to track changes, each of the versions is a copy of the document and takes up a disk space (Till SharePoint 2010, BTW). As per Microsoft design changing versioning limits will not delete existing minor/major versions of the file until we update it.
Its a best practice to limit versions. You can Navigate to Document Library Settings>> Version Settings>> and set versioning limits, set versioning ON/OFF in SharePoint versioning settings page. But this will not have any effect on existing documents until you make edits on the document and update. (You can Check-out and check-in them back as a Shortcut). Also its not possible to get into each document library and set these settings manually, isn't it? As there were thousands of files in the document library I would like to programmatically approach the change to simply get rid of the old versions across the site and regain space.
PowerShell can Set Versioning Limits and Cleanup Old Versions:
All of these issues can resolved with a powershell script which does clean up of old versions in SharePoint library by looping through all the site collections, webs, lists and items. From each item it checks the versions and delete. Take a look at my post: Limit and Cleanup Versioning in SharePoint with PowerShell
However, not all guys are good at PowerShell scripting (You must be good at PowerShell, SharePoint Admins!) and obviously its easy to make disaster if you are novice! So, would like to have a GUI based SharePoint utility to fix versioning of document libraries.
SharePoint Versioning Manager Utility to Set Limits and Cleanup Old Versions
I've created a SharePoint tool using C# object model, which gives the functionality to manage document versions and programmatically remove extraneous versions either for a selected list or library or of all lists and libraries in a SharePoint site. It takes parameters such as:
![Tool to Analyze sharepoint versioning Settings Tool to Analyze sharepoint versioning Settings]()
Analyze Versionings of a Selected Library:![Reduce sharepoint versioning to get storage space Reduce sharepoint versioning to get storage space]()
Set Versioning Limit and Cleanup for a Selected Library:
Set the versioning limits either for selected list/library or for entire site.
![Tool to Trim and Cleanup SharePoint Versions Tool to Trim and Cleanup SharePoint Versions]()
In a Project collaboration environment, with this utility, We had a doc library setup with versioning 5 major and 5 minor. we recovered about to 28 GB of free space!
Download SharePoint Versioning Manager from CodePlex
As always, I see there are room for enhancements to the tool, will update and release a new version as and when time allows!
Although, versions are very useful to track changes, each of the versions is a copy of the document and takes up a disk space (Till SharePoint 2010, BTW). As per Microsoft design changing versioning limits will not delete existing minor/major versions of the file until we update it.
Its a best practice to limit versions. You can Navigate to Document Library Settings>> Version Settings>> and set versioning limits, set versioning ON/OFF in SharePoint versioning settings page. But this will not have any effect on existing documents until you make edits on the document and update. (You can Check-out and check-in them back as a Shortcut). Also its not possible to get into each document library and set these settings manually, isn't it? As there were thousands of files in the document library I would like to programmatically approach the change to simply get rid of the old versions across the site and regain space.
PowerShell can Set Versioning Limits and Cleanup Old Versions:
All of these issues can resolved with a powershell script which does clean up of old versions in SharePoint library by looping through all the site collections, webs, lists and items. From each item it checks the versions and delete. Take a look at my post: Limit and Cleanup Versioning in SharePoint with PowerShell
However, not all guys are good at PowerShell scripting (You must be good at PowerShell, SharePoint Admins!) and obviously its easy to make disaster if you are novice! So, would like to have a GUI based SharePoint utility to fix versioning of document libraries.
SharePoint Versioning Manager Utility to Set Limits and Cleanup Old Versions
I've created a SharePoint tool using C# object model, which gives the functionality to manage document versions and programmatically remove extraneous versions either for a selected list or library or of all lists and libraries in a SharePoint site. It takes parameters such as:
- Site collection URL, Site
- List/Library (or All List & Libraries)
- Define Version limits (No. of major versions / No. of minor versions to keep)
- Turn OFF/Turn ON versioning for selected or all lists/libraries.
This utility is built on SharePoint server object model and must be running from SharePoint Web Front End Servers! Not from your desktop!!
Get Versioning Analysis of all document libraries and lists: 
Analyze Versionings of a Selected Library:

Set Versioning Limit and Cleanup for a Selected Library:


In a Project collaboration environment, with this utility, We had a doc library setup with versioning 5 major and 5 minor. we recovered about to 28 GB of free space!
Download SharePoint Versioning Manager from CodePlex
SharePoint doesn't enable versioning by default!
As always, I see there are room for enhancements to the tool, will update and release a new version as and when time allows!