Anselm Schüler <mail@xxxxxxxxxxxxxxxxxx> writes: > 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. The short form is prefixed by a ":" and optionally ends by a ":", but the optional termination may not be required when there is no ambiguity (e.g. ":/!path" is "from the top, not matching "path", as "p" cannot be a magic signature; ":/:!path" is "from the top, matching "!path", as the set of magic signatures ends with the second disambiguating colon). The long form is prefixed by a ":(" and ends by a ")". > 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)☭ Doesn't ":():file" ask for a match for the pattern ":file", with a leading colon?