borg-diff - Diff contents of two archives

NAME  SYNOPSIS  DESCRIPTION  OPTIONS  EXAMPLES  SEE ALSO  AUTHOR 

NAME

borg-diff − Diff contents of two archives

SYNOPSIS

borg [common options] diff [options] REPO::ARCHIVE1 ARCHIVE2 [PATH...]

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.

See the output of the "borg help patterns" command for more help on exclude patterns.

OPTIONS

See borg−common(1) for common options of Borg commands.

arguments
REPO::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

optional arguments
−−numeric−owner

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.

Exclusion options
−e 
PATTERN−−exclude PATTERN

exclude paths matching PATTERN

−−exclude−from EXCLUDEFILE

read exclude patterns from EXCLUDEFILE, one per line

−−pattern PATTERN

experimental: include/exclude paths matching PATTERN

−−patterns−from PATTERNFILE

experimental: read include/exclude patterns from PATTERNFILE, one per line

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}]

SEE ALSO

borg−common(1)

AUTHOR

The Borg Collective


jenkler.se | uex.se