# 'git status -z' missing separators on OSX

3 messages from 2015-06-16 to 2015-06-17. Participants: Tad Hardesty, Jeff King, Eric Sunshine.
Thread: https://gitlist.dev/t/39652

## Tad Hardesty, 2015-06-16 23:21

Subject: 'git status -z' missing separators on OSX
Message-ID: <5580AF94.6090801@platymuus.com>
URL: https://gitlist.dev/e/5580AF94.6090801%40platymuus.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.

```

## Jeff King, 2015-06-17 03:32

Subject: Re: 'git status -z' missing separators on OSX
Message-ID: <20150617033211.GA24673@peff.net>
URL: https://gitlist.dev/e/20150617033211.GA24673%40peff.net
In-Reply-To: <5580AF94.6090801@platymuus.com>

```
On Tue, Jun 16, 2015 at 06:21:56PM -0500, Tad Hardesty wrote:

> ~/test (master #)$ git status -z | hexdump -C
> 00000000  41 20 20 61 41 20 20 62                           |A  aA  b|
> 00000008

That's really weird. I don't have a Yosemite box available, but I can't
reproduce on the Mavericks box I have access to. Still, I'd suspect
something weird in your config (e.g., something that is inserting itself
on the output pipe of "git status").

You said you blanked your config, but can you do "git config --list"
to double-check? Also, try running with GIT_TRACE=1, which would show if
git is starting a pager between your processes which might be eating the
NUL.

Can you also double-check that you have no aliases for "git" (try "type
git"). We have sometimes seen weird behavior when people have aliased
"git" to "hub".

Is it only "git status" that is affected? Does "git log --oneline -1 -z"
end in a NUL (it should)?

-Peff

```

## Eric Sunshine, 2015-06-17 21:32

Subject: Re: 'git status -z' missing separators on OSX
Message-ID: <CAPig+cQtHjF=KiK0V3+t6bnULVeOOkyhovto=CPfmvNPVkxGLA@mail.gmail.com>
URL: https://gitlist.dev/e/CAPig%2BcQtHjF%3DKiK0V3%2Bt6bnULVeOOkyhovto%3DCPfmvNPVkxGLA%40mail.gmail.com
In-Reply-To: <20150617033211.GA24673@peff.net>

```
On Tue, Jun 16, 2015 at 11:32 PM, Jeff King <peff@peff.net> wrote:
> On Tue, Jun 16, 2015 at 06:21:56PM -0500, Tad Hardesty wrote:
>> ~/test (master #)$ git status -z | hexdump -C
>> 00000000  41 20 20 61 41 20 20 62                           |A  aA  b|
>> 00000008
>
> That's really weird. I don't have a Yosemite box available, but I can't
> reproduce on the Mavericks box I have access to. Still, I'd suspect
> something weird in your config (e.g., something that is inserting itself
> on the output pipe of "git status").

I also am unable to reproduce this behavior (using Yosemite).


```
