From: Anselm Schüler Date: Wed, 19 Feb 2025 10:49:39 GMT Subject: Possible bug: Empty magic word list in pathspec is handled differently in short vs. long form Message-ID: <216a7288-b599-4333-ba62-10665d6a94d8@anselmschueler.com> 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 . I’m running git 2.47.2, built with Nix (nixpkgs commit 2ff53fe) from the kernel.org source tarball. ~Anselm Schüler ⚙️