If you run git diff for a pathspec with an empty magic word/symbol list
in short form (prefixed by ::) and in long form (prefixed by :():), you
get different results.
Here’s an example use of git that illustrates this:
~☭ mkdir gittest
~☭ y gittest/
~/gittest☭ git init
Initialized empty Git repository in /home/anselmschueler/gittest/.git/
~/gittest (b0)☭ uuidgen >file
~/gittest (b0)☭ git add file && git commit -m "$(read)"
read> initial commit
[b0 (root-commit) cd3bd43] initial commit
1 file changed, 1 insertion(+)
create mode 100644 file
~/gittest (b0)☭ uuidgen >file
~/gittest (b0)☭ git diff -- "::file"
file
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
───┐
1: │
───┘
66d18ffa-1128-42a5-8d4e-f9d75eb86b92
9acea2b5-50a6-4f87-ae1a-64019a93e55e
~/gittest (b0)☭ git diff -- ":():file"
~/gittest (b0)☭
Is there a reason for this? I couldn’t find it documented in the git
glossary <https://git-scm.com/docs/gitglossary>.
I’m running git 2.47.2, built with Nix (nixpkgs commit 2ff53fe) from the
kernel.org source tarball.
~Anselm Schüler ⚙️