Reset file version
Discard version history
Different from trimming. Trimming thins a file's history; this resets it, so the file starts again from a version number you choose. Use it when a file's history is not merely large but wrong, such as after a migration that created hundreds of spurious versions.
What it does
- Which files you have picked, and what their history looks like now.
- What each file's version number would become: 0.1, a specific version, or the closest major.
- What actually happened, per file.
How it runs
- Sign in and pick files. In one library.
- Choose the mode. Reset to 0.1, reset to a specific version, or reset to the closest major version.
- Read the preview. It runs first. Nothing changes until you confirm.
- Confirm, then it runs. Per-file progress. Cancel offers Finish the current item, Stop now, or Keep running. Nothing is left half-written: an item is either done or not started.
How it works
A reset rebuilds each file rather than removing its versions one by one. The file is copied to a temporary name in the same folder (beginning _tmp__), the original, with its whole history, is sent to the site recycle bin, the copy is copied back to the original name, and the temporary copy is recycled too. The rebuilt file has no history and starts at version 0.1. Nothing is deleted outright: the original file and its history are in the recycle bin. Because the rebuilt file is a new file, it gets a new item ID and a new Modified date, and sharing links made to the original no longer reach it.
Reset to 0.1 stops there. Reset to a specific version, and reset to the closest major version (the major number the file had), then raise the rebuilt file one major version at a time up to that number, putting back each major version's check-in comment where it could be read. Every one of those versions holds the file's current content; the old content of earlier versions is not brought back. In a library with minor versions each step is a draft that is then published, and in a library that requires content approval each published version is also approved, with its original approval comment where one was recorded. In a library without minor versions each step is a new major check-in; if the file cannot be checked out because someone else has it, the version is still created, without its comment.
The preview reads every file in scope and its history and changes nothing; the confirmed reset then runs on exactly the files the preview listed, one library per run, one file at a time. A library with versioning off is refused. If a column is set to enforce unique values, the copy would clash with the original, so the run first records which columns those are, switches enforcement off in that library, and switches it back on when the run ends, however it ends. If switching it back on fails, the result names the columns still off, and the next reset on that site puts them right.
A file someone has open is skipped and listed as locked. A file that fails before the original is recycled is left untouched. A file that fails after that is listed with SharePoint's message; its original is then in the recycle bin, and the temporary copy may still be in the folder. A file whose history size SharePoint will not report is still reset, and is left out of the reclaimed total rather than counted as zero. Each file's versions are written to a run log with their outcome, and the run goes into the tool's History and Report History. If you ticked it, the site's quick-launch links are captured before the run and any it disturbed are put back at the end, best-effort.
What you need
- Write access to the library, and enough rights to delete versions.
- If the library has a column set to "Enforce unique values": rights to change the library's column settings.
What it will not do
- Each file is copied to a temporary name, the original with its whole history is sent to the site recycle bin, and the copy takes the original name. The old history comes back only by restoring the original from the recycle bin, while the bin keeps it.
- The rebuilt file is a new file: it gets a new item ID and a new Modified date, and sharing links made to the original no longer reach it.
- This changes version numbers, which anything referencing a specific version will notice.
- A column set to "Enforce unique values" is switched off in that library while the reset runs, and back on when it ends. The preview tells you first. If someone saves a duplicate value meanwhile, it cannot be switched back on, and the result says so.
- If the history is simply too large rather than wrong, Version trimming is the gentler tool.