Jeff King [off-list ref] writes:
On Sun, Sep 07, 2008 at 10:21:16AM -0400, Eric Gerlach wrote:
quoted
quoted
quoted
I'm trying to test to see if "git diff --cached" will fail because
there are no existing commits. I've come up with running "git
show-ref -h -q" and testing its return value. My hypothesis is: If
Maybe "git rev-parse --verify HEAD"?
That seems like it would work too... any reason one would be better than
the other?
My thinking was:
1. It's a plumbing command, and so less likely to change its behavior
versus "git diff".
2. The seems more obvious to me. rev-parse --verify is meant to ask
"is this a valid object name?"
It is slightly different from your show-ref. Yours asks "is there
anything in refs/heads in this repository?" Mine asks "does the current
HEAD exist?" In practice, they are both reasonable tests, since once you
have a branch, it is very difficult to get HEAD to point to something
invalid short of editing manually to some bogus value. But you might
prefer one over the other depending on what you are trying to say.
All depends on how "an empty repository" is defined. My definition of an
empty repository would have been:
- No objects in it;
- No index;
- No refs except symrefs.