Provided by: git-annex_10.20240129-1build1_amd64 bug

NAME

       git-annex-diffdriver - git diff driver

SYNOPSIS

       git annex diffdriver [--get,--text] [-- --diffopts --]

       git annex diffdriver -- cmd --cmdopts --

DESCRIPTION

       Normally,  git diff when run on annexed files displays the changes that are staged in git,
       eg annex symlinks and pointers. This command allows  git  diff  to  diff  the  content  of
       annexed files instead.

       This  command  can  be  used  either  as  a  simple text differ, or as a shim that runs an
       external git diff driver.

       If some of your annexed files are textual  in  form,  and  can  be  usefully  diffed  with
       diff(1),  you  can  configure  git  to  use  this  command  to  diff  them, by configuring
       .gitattributes  to  contain  eg  *.txt   diff=annextextdiff   and   setting   git   config
       diff.annextextdiff.command "git annex diffdriver --text".

       If  your  annexed  files  are  not  textual in form, you will need an external diff driver
       program that is able to diff the file format(s)  you  use.   See  git's  documentation  of
       GIT_EXTERNAL_DIFF and gitattributes(5)'s documentation of external diff drivers.

       Normally,  when  using git diff with an external diff driver, it will not see the contents
       of annexed files, since git passes to it the git-annex symlinks  or  pointer  files.  This
       command works around the problem, by running the real external diff driver, and passing it
       the paths to the annexed content. Configure git to use "git-annex diffdriver -- cmd params
       --" as the external diff driver, where cmd is the external diff driver you want it to run,
       and params are any extra parameters to pass to  it.  Note  the  trailing  "--",  which  is
       required.

       For   example,   to   use   the   j-c-diff  program  as  the  external  diff  driver,  set
       GIT_EXTERNAL_DIFF="git-annex diffdriver -- j-c-diff --"

OPTIONS

       To get the contents of annexed files from remotes when they are not already  present,  use
       the  --get  option.  The  file  contents will remain in the repository for later use until
       dropped in the usual ways.

       To diff text files with diff(1), use the --text option.  To  pass  additional  options  to
       diff(1), use eg "--text -- --color --"

       To  use  an external diff driver command, the options must start with "--" followed by the
       diff driver command, its options, and another "--"

       Also the git-annex-common-options(1) can be used.

SEE ALSO

       git-annex(1)

AUTHOR

       Joey Hess <id@joeyh.name>

                                                                          git-annex-diffdriver(1)