Hi joey,

Currently, getting a useful diff between annexed file versions is quite involved [(setting up git-annex diffdriver)](https://git-annex.branchable.com/forum/git-like_git-annex_diff/).

It would be very nice if showing changes between annexed files was a little more straight-forward and ideally without any user config needed. UI suggestions:

- `git annex diff`: would behave exactly like `git diff`, but operatign on both unannexed and annexed contents 
  - ideally re-implementing all its options (e.g. `--word-diff`, `--word-diff-regex`, etc.)
  - would need a diff implementation in Haskell (surely there is one)
  - sounds complicated to do TBH
- Teaching `git diff` to use the annexed content instead of the pointer links/files
  - software like [`nbstripout`](https://github.com/kynan/nbstripout) passes the git-tracked contents through a filter before diffing. This sounds like git-annex could do the same to add straight-forward `git diff` support without user configuration.
  - git-annex already has a `*  filter=annex` attribute in place, for text diffing there apparently needs to be a `*  diff=annex` attribute and a `[diff "annex"] textconv=git-annex-output-content-instead-of-pointer` config.
  - even if the above works, I don't know how to temporarily switch this off without uncommenting the `textconv` e.g. with `git config --edit`. Sometimes you just want to see the actual hashes of old and new file.

Maybe `git annex diffdriver` kind of does part of this, but I don't really understand what it actually does.

Here other posts related to diffing:

- https://git-annex.branchable.com/forum/enabling_git-annex-diffdriver_for_gitk/
- https://git-annex.branchable.com/todo/--get_option_for_diffdriver/

What do you think?

Cheers, Yann

PS: Thank you very much for git-annex, it's awesome! I'm giving a git-annex workshop next weekend [@Tuebix](https://cfp.tuebix.org/tuebix-2023/talk/review/GWRP3UKE3VFKVDG8RNQ8ZZPCZPNZYYWM), really looking forward to it.

> [[fixed|done]] --[[Joey]]
