borg-diff - Diff contents of two archives
Contents
Description
This command finds differences (file contents, user/group/mode) between archives.
A repository location and an archive name must be specified for REPO::ARCHIVE1. ARCHIVE2 is just another
archive name in same repository (no repository location allowed).
For archives created with Borg 1.1 or newer diff automatically detects whether the archives are created
with the same chunker params. If so, only chunk IDs are compared, which is very fast.
For archives prior to Borg 1.1 chunk contents are compared by default. If you did not create the
archives with different chunker params, pass --same-chunker-params. Note that the chunker params changed
from Borg 0.xx to 1.0.
For more help on include/exclude patterns, see the borg_patterns command output.
Examples
$ borg init -e=none testrepo
$ mkdir testdir
$ cd testdir
$ echo asdf > file1
$ dd if=/dev/urandom bs=1M count=4 > file2
$ touch file3
$ borg create ../testrepo::archive1 .
$ chmod a+x file1
$ echo "something" >> file2
$ borg create ../testrepo::archive2 .
$ echo "testing 123" >> file1
$ rm file3
$ touch file4
$ borg create ../testrepo::archive3 .
$ cd ..
$ borg diff testrepo::archive1 archive2
[-rw-r--r-- -> -rwxr-xr-x] file1
+135 B -252 B file2
$ borg diff testrepo::archive2 archive3
+17 B -5 B file1
added 0 B file4
removed 0 B file3
$ borg diff testrepo::archive1 archive3
+17 B -5 B [-rw-r--r-- -> -rwxr-xr-x] file1
+135 B -252 B file2
added 0 B file4
removed 0 B file3
$ borg diff --json-lines testrepo::archive1 archive3
{"path": "file1", "changes": [{"type": "modified", "added": 17, "removed": 5}, {"type": "mode", "old_mode": "-rw-r--r--", "new_mode": "-rwxr-xr-x"}]}
{"path": "file2", "changes": [{"type": "modified", "added": 135, "removed": 252}]}
{"path": "file4", "changes": [{"type": "added", "size": 0}]}
{"path": "file3", "changes": [{"type": "removed", "size": 0}]
Name
borg-diff - Diff contents of two archives
Options
See borg-common(1) for common options of Borg commands.
argumentsREPO::ARCHIVE1
repository location and ARCHIVE1 name
ARCHIVE2
ARCHIVE2 name (no repository location allowed)
PATH paths of items inside the archives to compare; patterns are supported
optionalarguments--numeric-owner
deprecated, use --numeric-ids instead
--numeric-ids
only consider numeric user and group identifiers
--same-chunker-params
Override check of chunker parameters.
--sort Sort the output lines by file path.
--json-lines
Format output as JSON Lines.
Exclusionoptions-ePATTERN, --excludePATTERN
exclude paths matching PATTERN
--exclude-fromEXCLUDEFILE
read exclude patterns from EXCLUDEFILE, one per line
--patternPATTERN
include/exclude paths matching PATTERN
--patterns-fromPATTERNFILE
read include/exclude patterns from PATTERNFILE, one per line
See Also
borg-common(1)Synopsis
borg [common options] diff [options] REPO::ARCHIVE1 ARCHIVE2 [PATH...]
