A meta tool for version control of Office documents (docx, xlsx, pptx, odt, ods, odp)
Project description
Docuver - Document Version Control Tool
A meta tool for version control of Office documents (docx, xlsx, odt, ods, odp, pptx). Since these files are essentially ZIP archives, Docuver extracts their contents into folders for proper version control with Git.
Supported Formats
- Microsoft Office:
.docx,.xlsx,.pptx - LibreOffice/OpenOffice:
.odt,.ods,.odp
Installation
Prerequisites
- Python 3.6 or higher
- No external dependencies (uses Python standard library only)
Option 1: Install from PyPI (Recommended)
pip install docuver
Verify Installation
docuver --help
Quick Start
1. Initialize Your Project
# Navigate to your project directory
cd /path/to/your/project
# Initialize docuver (creates .docuver/ config and updates .gitignore)
docuver init
2. Add Office Documents
# Copy your Office documents to the project directory
cp ~/Documents/Report.docx .
3. Extract Documents for Version Control
# Initialize project and track documents
docuver init
docuver track Report.docx
docuver track Budget.xlsx
# OR use sync for individual documents
docuver sync Report.docx
4. Check Status
docuver status
5. Clean Up and Commit
# Remove binary files (keep extracted folders)
docuver cleanup
# Commit to version control
git add .
git commit -m "Add Office documents for version control"
Commands
init
Initialize docuver in the current directory.
docuver init
This creates:
.docuver/directory for project metadata- Updates
.gitignoreto exclude Office binary files - Initializes Git repository if one doesn't exist
- Migrates any existing metadata files to centralized storage
sync <file|folder>
Synchronize an Office document or folder.
# Extract a document (creates Report.docxf/ folder)
docuver sync Report.docx
# Pack a folder (creates Report.docx file)
docuver sync Report.docxf
# Force operation (skip safety checks)
docuver sync Report.docx --force
track <filename>
Track Office document(s) for version control with wildcard support and comprehensive safety checks.
# Track a specific document
docuver track Report.docx
# Track multiple documents with wildcards
docuver track *.docx
docuver track Report*.xlsx
docuver track "Documents/*.pptx"
# Force tracking (skip safety checks)
docuver track *.docx --force
# Track without XML formatting
docuver track *.docx --no-format
cleanup
Remove binary Office files that have corresponding extracted folders with comprehensive safety checks.
# Safe cleanup with safety checks
docuver cleanup
# Force cleanup (skip safety checks)
docuver cleanup --force
status
Show the status of Office files and extracted folders.
docuver status
completions
Install shell completions for docuver commands.
docuver completions
Workflow
Initial Setup
# Initialize docuver in your project
docuver init
# Extract existing Office documents
docuver prepare
# Clean up binary files (optional)
docuver cleanup
# Commit the extracted folders
git add .
git commit -m "Initial docuver setup with extracted Office documents"
Working with Documents
To edit a document:
# Pack folder to document
docuver sync Document.docxf
# Edit Document.docx in your Office application
# ... make changes ...
# Extract updated document
docuver sync Document.docx
# Clean up binary file
rm Document.docx
# Commit changes
git add Document.docxf/
git commit -m "Updated document content"
Install Completions
# Install completion scripts and configure shells automatically
docuver completions
# Completions will be available in new shell sessions
# To use in current session, restart shell or run:
exec $SHELL
Enhanced Completion with argcomplete
For even better completion support, install argcomplete:
pip install docuver[completions]
Troubleshooting
"Invalid or corrupted Office document"
- Ensure the file is a valid Office document
- Try opening the file in an Office application first
- Some password-protected files may not be supported
Git shows binary changes
- Ensure
.gitignoreincludes Office extensions - Run
docuver cleanupto remove binary files - Check that you're committing folders, not binary files
⚠️ Disclaimer
Tool is still in development. Use at your own risk. Most of code was written by Windsurf IDE with Claude Sonnet 4.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file docuver-0.1.0.tar.gz.
File metadata
- Download URL: docuver-0.1.0.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bad978d22f063491e3563b29e2d0bd637de203ef0ea4b19d3166288e3368bc1
|
|
| MD5 |
349e514ea27ed7bfeb618a7c90a4b2f1
|
|
| BLAKE2b-256 |
3dc12bdd2d024c7b50b41c68eb62f6c6cbefd8cc98e57598ca4640970b82f599
|
File details
Details for the file docuver-0.1.0-py3-none-any.whl.
File metadata
- Download URL: docuver-0.1.0-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f6605db8efc89470e610c1338fe0f8a1842c1b27b80549642ab79400abda941
|
|
| MD5 |
43a26853d6bcd27c2e0fba1c03c19133
|
|
| BLAKE2b-256 |
e1c3d298cb248aec5e4d061f0116dd21d1f7e44b1b58a45fc9cc2fb76047c70b
|