osmium-diff man page

osmium-diff — display differences between OSM files


osmium diff [Options] OSM-FILE1 OSM-FILE2


Finds differences between two OSM files and displays them.

Only differences between objects (node, ways, and relations) are found and displayed. Headers are ignored.

Objects in both input files must be sorted in the same order.

Several output formats are supported, see the OUTPUT FORMAT section.

This command is intended for displaying the differences between files to humans. It can not be used to create an OSM change file (.osc), use osmium-derive-changes for that.

Output Formats

The following output formats are supported and can be set with the --output-format or -f options. Default is the compact format.

A very compact format. For all objects a line is printed with the type of object ('n', 'w', or 'r'), the object ID and then the version number. If objects appear in both files and are identical they are preceded by a space (' ') character, if they are in both files, but different, they are preceded by an asterisk ('*'). Otherwise they get a minus ('-') or plus ('+') character to show that they are only in the first or second file, respectively.
The usual OPL format with all lines preceded by space (' '), minus ('-'), or plus ('+') characters depending on whether the object is in both, the first, or the second file.
The usual debug format with all lines preceded by space (' '), minus ('-'), or plus ('+') characters depending on whether the object is in both, the first, or the second file. Color support can be enabled ('debug,color').

None of the output formats print the headers of the input files.


-c, --suppress-common
Do not output objects that are the same in both files.
-f, --output-format=FORMAT
See section Output Formats.
-o, --output=FILE
Name of the output file. Default is '-' (stdout).
-O, --overwrite
Allow an existing output file to be overwritten. Normally osmium will refuse to write over an existing file.
-q, --quiet
No output. Just report when files differ through the return code.
-s, --summary
Print count of objects that are only in the left or right files, or the same in both or different in both to stderr.
-t, --object-type=TYPE
Read only objects of given type (node, way, relation). By default all types are read. This option can be given multiple times. This affects the output as well as the return code of the command.

Common Options

-h, --help
Show usage help.
-v, --verbose
Set verbose mode. The program will output information about what it is doing to stderr.

Input Options

-F, --input-format=FORMAT
The format of the input file(s). Can be used to set the input format if it can't be autodetected from the file name(s). This will set the format for all input files, there is no way to set the format for some input files only. See osmium-file-formats(5) or the libosmium manual for details.


osmium diff exits with exit code

if the files are the same,
if the files are different, or
if there was an error

Memory Usage

osmium diff doesn't keep a lot of data in memory.


Show difference between Nepal files from January 2016 and Febrary 2016 in compact format:

osmium diff nepal-20160101.osm.pbf nepal-20160201.osm.pbf

Show in color debug format only those objects that are different:

osmium diff nepal-20160101.osm.pbf nepal-20160201.osm.pbf -f debug,color -c

See Also

osmium(1), osmium-file-formats(5), osmium-derive-changes(1)
Osmium website (http://osmcode.org/osmium)


If you have any questions or want to report a bug, please go to http://osmcode.org/contact.html


Jochen Topf <jochen@topf.org>.

Referenced By

osmium(1), osmium-derive-changes(1).