Tuesday, August 16, 2011

SharePoint Document library Versioning and Recommended Practices

Based on a discussion with my colleague about SharePoint document library versioning, I thought of writing a blog post on SharePoint versioning recommended practices. By default, version history is turned off on document libraries. My own recommended practice is turn on versioning and limit the versions to 3 major and 3 minor versions with option to create major and minor versions. However, limiting the versions completely depends on the business requirements as well. Some business users need to keep 5 to 10 different versions based on their work strategy.

ü  Turn on Versioning with create major and minor (draft) versions
ü  Limit the versions to 3 major and 3 minor
ü  Enable require checkout functionality

Versioning is a great feature of SharePoint. We can easily restore the documents from earlier versions in case of any data loss. It provides a safety net in the event that a corrupted version gets saved and also you can track the changes (and see who made them) from version to version at a glance. This feature is not available with traditional Shared Drives. Users are used to rename the files with appended “_v1”, “_v2” etc. to maintain the versions in Shared Drives. So, I would definitely enable the versioning in SharePoint document libraries and limit the versions to 3 major and 3 minor versions.

Major and Minor Versions: Versions ending with a zero extension (.0) are major versions and versions ending with non-zero extensions are minor versions. Only major versions can be published. Additional permission levels can be configured for working with minor versions (draft). In most scenarios, users who can edit major versions are also allowed to edit minor versions, but read-only users can only view major versions/published documents.

Why do I need to limit versions to 3 major and 3 minor versions?

By default, SharePoint keeps all versions in the document library once you enable the versioning (all versions size is counted towards the site collection quota), and these aren't bitwise differential versions, they're the full versions. I.e. each time you save the document, SharePoint stores as a separate copy of complete document in the database though you make a small change. Just imagine If you have a 100 MB presentation with 20 different versions (Around 2 GB of storage capacity). With large documents, even a small but active library can eat up your database in a hurry. If you have a limited site collection storage capacity, this is going to be a big issue to store more number of documents as database reaches it max storage capacity very soon. So, restrict at max 3 major and 3 minor versions at any point in time in the document library.

If you forget to set the limitation, there is no way from SharePoint out-of-the-box UI to delete specific versions form document version history. Either you have to remove/delete all versions or all minor versions. There is no way to delete specific published or minor versions in bulk.

To enable version history, follow the below mentioned steps:

v  Navigate to your SharePoint document library
v  Select document library settings
v  In the settings page, under General Settings section, click Versioning Settings
v  Check the checkbox “Create major and minor (draft) versions” option
v  And, check the checkboxes to keep 3 major and 3 minor versions

3 comments:

bluefly said...

Cool Kolan. I had a question about this very topic at my work SP forum. I got no replies so googled. Thanks for the info. I also wanted to know if SP keeps a full copy or just a "bitwise differential" (new terminology for me, but exactly what I was thinking).
thanks for this.
Julie

Unknown said...

Hey Kolan,
Keep in mind that the minor version tick box does not limit the amount of minor versions per se, but the amount of major version it will keep minors for. Effectively with 3+3 you are saying: Keep the last three major version and keep all minor version for all active majors. I personally use a 5+1 approach where I keep the last 5 major version and only maintain minors for the last major.
More often than not it will be the minor versions which will blow out your database size and not the majors when turning on versioning with Major and Minor enabled.

Kolan Veera Reddy said...

Hi Alex,

Thank you for your comments. I agree with your comments!. But there are some scenario’s where users might need the minor versions for at least last two/three major versions. So, my recommendation is 3 + 3. I will definitely consider your recommendation for an appropriate business case.

Thanks,
Veera Reddy