logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

borg-diff - Diff contents of two archives

Author

       The Borg Collective

                                                   2022-02-19                                       BORG-DIFF(1)

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

See Also