I'm surprised to find that git cat-file --batch, on a Linux system, strips the \r from an input like "HEAD:foo\r\n"
It's obvious, of course, that it will remove the newline, and so this interface cannot be used to query about a filename that, for some horrible reason, contains a newline. But very surprising that it cannot be used for filename that contains a carriage return, at least on a non-Windows system. The docs for cat-file --batch say the list of objects is separated by linefeeds. I don't know if updating the docs is the best fix. (I'd be happy to use a -z if it had one.) -- see shy jo  aka "a large enough number of monkeys"
Description: PGP signature