Skip to main content

DMFO -- Diff and Merge For Office

badge:pypi-version badge:py-versions pre-commit pre-commit.ci status Code style: black Code style: prettier

This is a set of scripts that enable convenient diff and merge of Office-related file types (currently Word and PowerPoint (diff only)). The office application will be started using COM automation, thus an Office installation is required.

DMFO is LFS compatible.

Important: Legacy PowerShell scripts are located in ps1 and may still be used. However, not all new features will be ported back to the ps1 scripts.

Usage

Installation

Installable with pip or pipx (recommended).

pipx install DMFO

or

pipx install git+https://github.com/lcnittl/DMFO.git

Git Integration

These tools are intended to be used with Git, so that git diff and git merge will use Office applications to compare and "merge" files. Simply configure .gitattributes and .gitconfig to support the DMFO diff and merge driver. Enjoy to diff and merge Office documents by simply running:

> git diff
> git merge

as usual and with any paramter they accept.

.gitconfig

Simply register the diff and merge drivers by running dmfo install (scope can be given by appending system, global, local or worktree, default is global).

Alternatively, add the entries manually to your git config:

[diff "dmfo"]
	name = DMFO diff driver
	command = dmfo diff
	binary = true
[merge "dmfo"]
	name = DMFO merge driver
	driver = dmfo merge %O %A %B %L %P
	binary = true

Make sure that dmfo's path is in your path variable, otherwise prepand dmfo with the executable's path.

.gitattributes

Specify the following drivers in your .gitattributes file (currently DMFO is only supporting Word files):

*.doc diff=dmfo merge=dmfo
*.docx diff=dmfo merge=dmfo
*.ppt diff=dmfo
*.pptx diff=dmfo

CLI

This option might be added at a later time.

Reqirements

  • Git (for Windows)
  • Microsoft Office ([and/or]: Word, Powerpoint)

Platform

In its current implementation, DMFO is suited for Windows 10. Not tested on other platforms.

License

GNU General Public License v3.0 or later

See LICENSE for the full text.

Metadata

Release files for DMFO 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for DMFO 0.1.0
File Size Uploaded Provenance Actions
DMFO-0.1.0.tar.gz 31.3 kB Without provenance Details for DMFO-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for DMFO 0.1.0
File Interpreter ABI Platform Actions
DMFO-0.1.0-py3-none-any.whl Python 3 none any Details for DMFO-0.1.0-py3-none-any.whl

Total release size: 58.2 kB

Release files / DMFO-0.1.0.tar.gz

Download URL DMFO-0.1.0.tar.gz
Size 31.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3e0b575cd7563c037f396fc888dde4b9192866162c0cfb936d6393e888a9b08f
BLAKE2b-256 checksum
How to use checksums
8e0b8cce1d6eeb7d5a5705d6c0cd7daa3461ea82237af120677eaf5908944b74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

Release files / DMFO-0.1.0-py3-none-any.whl

Download URL DMFO-0.1.0-py3-none-any.whl
Size 27.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4ad818fdb8a9836bd7d99368c84c9a879ecb9f25904bb4d1ea272753f8c70784
BLAKE2b-256 checksum
How to use checksums
21b52f7426d11e5d3d25a447cb5dc829500b365f4d4fe951f6b80594b100b3f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

Security for DMFO 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page