# borg diff

    borg [common options] diff [options] REPO_ARCHIVE1 ARCHIVE2 [PATH...]

positional 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.
Common options
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
| `--exclude-caches` | exclude directories that contain a CACHEDIR.TAG file (http://www.brynosaurus.com/cachedir/spec.html)
| `--exclude-if-present NAME` | exclude directories that are tagged by containing a filesystem object with the given NAME
| `--keep-exclude-tags`, `--keep-tag-files` | if tag objects are specified with `--exclude-if-present`, don’t omit the tag objects themselves from the backup archive

## 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.

## 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 .

    $ 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
    added           0 B file4
    removed         0 B file3

    $ borg diff testrepo::archive1 archive3
    [-rw-r--r-- -> -rwxr-xr-x] file1
       +135 B    -252 B file2
    added           0 B file4
    removed         0 B file3