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

'git status -z' missing separators on OSX

From
THTad Hardesty <tad@platymuus.com>
Date
Jun 16, 2015, 23:21 UTC
Message-ID
<5580AF94.6090801@platymuus.com>

I have been experiencing a problem where git on OSX prints incorrect output to the `git status -z` command, where instead of NUL separators records are simply not separated. This is causing problems with IDE integration. While I have a workaround involving manually replacing \n with \0, it would be nice to identify and fix the root issue.

Here's a terminal session showing the problem: ~$ mkdir test && cd test ~/test$ git init Initialized empty Git repository in /Users/thardesty/test/.git/ ~/test (master #)$ touch a b ~/test (master #)$ ls a b ~/test (master #)$ git status -z | hexdump -C 00000000 3f 3f 20 61 3f 3f 20 62 |?? a?? b| 00000008 ~/test (master #)$ git add a b ~/test (master #)$ git status -z | hexdump -C 00000000 41 20 20 61 41 20 20 62 |A aA b| 00000008 ~/test (master #)$ git status --porcelain | hexdump -C 00000000 41 20 20 61 0a 41 20 20 62 0a |A a.A b.| 0000000a ~/test (master #)$ git --version git version 2.4.3 ~/test (master #)$ uname -a Darwin HA002070 14.3.0 Darwin Kernel Version 14.3.0: Mon Mar 23 11:59:05 PDT 2015; root:xnu-2782.20.48~5/RELEASE_X86_64 x86_64

As shown, --porcelain prints a newline but -z yields no separator at all.

The Mac is running OS X Yosemite 10.10.3. I have tried git 2.3.2 from Apple, git 2.4.2 from brew, and git 2.4.3 from brew, git-scm.org, and self-compiled, and these all exhibit the problem. Some helpful folks on the #git IRC tried the commands for me and didn't see any problems, but I temporarily blanked all my configuration files and that didn't help. I double-checked and git on Linux has the correct behavior.

Thanks for any help.
Next: Jeff King
Message 1 of 3 in “'git status -z' missing separators on OSX”
  1. Tad HardestyJun 16, 2015
  2. Jeff KingJun 17, 2015
  3. Eric SunshineJun 17, 2015

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.