git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[Bug report] git status doesn't escape paths of untracked files

From
PFPatrick Fong <patrickf3139@gmail.com>
Date
Sep 8, 2020, 00:28 UTC
Message-ID
<CAMRL+qb0YC1EOTM-LDfMpJ=AJJ014LT5ufBcs0v77byN74A0vw@mail.gmail.com>

What did you do before the bug happened? (Steps to reproduce your issue) touch "this is escaped" touch "this is not escaped" git add "this is escaped" git status --short

What did you expect to happen? (Expected behavior) I expected that git status --short would string escape both "this is escaped" and "this is not escaped" since they both contain spaces that need escaping.

What happened instead? (Actual behavior) git status did not string escape "this is not escaped" but it does if you add it to the index.

What's different between what you expected and what actually happened?

Anything else you want to add: Once you add "this is not escaped", git status will output it with quotes. git status --short seems to change its behavior of escaping based on whether the path is tracked or untracked.

Please review the rest of the bug report below. You can delete any lines you don't wish to share.

[System Info] git version: git version 2.28.0 cpu: x86_64 no commit associated with this build sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh uname: Darwin 19.5.0 Darwin Kernel Version 19.5.0: Tue May 26 20:41:44 PDT 2020; root:xnu-6153.121.2~2/RELEASE_X86_64 x86_64 compiler info: clang: 11.0.3 (clang-1103.0.32.62) libc info: no libc information available $SHELL (typically, interactive shell): /usr/local/bin/fish

[Enabled Hooks]
Next: Junio C Hamano
Message 1 of 41 in “[Bug report] git status doesn't escape paths of untracked files”
  1. Patrick FongSep 8, 2020
  2. Junio C HamanoSep 8, 2020
  3. brian m. carlsonSep 8, 2020
  4. Junio C HamanoSep 8, 2020
  5. Junio C HamanoSep 8, 2020
  6. Junio C HamanoSep 8, 2020
  7. Martin ÅgrenSep 8, 2020
  8. René ScharfeSep 8, 2020
  9. Junio C HamanoSep 9, 2020
  10. René ScharfeSep 10, 2020
  11. Junio C HamanoSep 10, 2020
  12. wt-status: quote paths identically whether tracked or untrackedbrian m. carlson, Sep 8, 2020
  13. 0/6 quote_path() clean-upsJunio C Hamano, Sep 8, 2020
  14. 2/6 quote_path: give flags parameter to quote_path()Junio C Hamano, Sep 8, 2020
  15. Jeff KingSep 10, 2020
  16. Junio C HamanoSep 10, 2020
  17. Junio C HamanoSep 10, 2020
  18. Jeff KingSep 10, 2020
  19. 3/6 quote_path: optionally allow quoting a path with SP in itJunio C Hamano, Sep 8, 2020
  20. Jeff KingSep 10, 2020
  21. 4/6 wt-status: consistently quote paths in "status --short" outputJunio C Hamano, Sep 8, 2020
  22. 1/6 quote_path: rename quote_path_relative() to quote_path()Junio C Hamano, Sep 8, 2020
  23. 6/6 quote: turn 'nodq' parameter into a set of flagsJunio C Hamano, Sep 8, 2020
  24. Jeff KingSep 10, 2020
  25. 5/6 quote: rename misnamed sq_lookup[] to cq_lookup[]Junio C Hamano, Sep 8, 2020
  26. Chris TorekSep 8, 2020
  27. Jeff KingSep 10, 2020
  28. 0/7 quote_path() clean-upsJunio C Hamano, Sep 10, 2020
  29. 1/7 quote_path: rename quote_path_relative() to quote_path()Junio C Hamano, Sep 10, 2020
  30. 4/7 quote_path: code clarificationJunio C Hamano, Sep 10, 2020
  31. Jeff KingSep 10, 2020
  32. Junio C HamanoSep 10, 2020
  33. Jeff KingSep 10, 2020
  34. 7/7 quote: turn 'nodq' parameter into a set of flagsJunio C Hamano, Sep 10, 2020
  35. 5/7 wt-status: consistently quote paths in "status --short" outputJunio C Hamano, Sep 10, 2020
  36. Jeff KingSep 10, 2020
  37. Junio C HamanoSep 10, 2020
  38. 2/7 quote_path: give flags parameter to quote_path()Junio C Hamano, Sep 10, 2020
  39. 3/7 quote_path: optionally allow quoting a path with SP in itJunio C Hamano, Sep 10, 2020
  40. 6/7 quote: rename misnamed sq_lookup[] to cq_lookup[]Junio C Hamano, Sep 10, 2020
  41. brian m. carlsonSep 10, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.