I wrote: > Thanks. This fixes the segfault. While I was testing this, > I wondered if the following cases should differ: Nevermind me. Jeff beat me to a reply and included much more useful details about why this occurs and suggestions for fixing it. :) > # f*40 > $ ./git-rev-parse ffffffffffffffffffffffffffffffffffffffff^@ ; echo $? > 0 > > # f*39 > $ ./git-rev-parse fffffffffffffffffffffffffffffffffffffff^@ ; echo $? > fffffffffffffffffffffffffffffffffffffff^@ > fatal: ambiguous argument 'fffffffffffffffffffffffffffffffffffffff^@': unknown revision or path not in the working tree. > Use '--' to separate paths from revisions, like this: > 'git <command> [<revision>...] -- [<file>...]' > 128 > > Looking a little further, this is deeper than the rev-parse > handling. The difference in how these invalid refs are > handled appears in 'git show' as well. With 'git show' a > (different) fatal error is returned in both cases. > > # f*40 > $ git show ffffffffffffffffffffffffffffffffffffffff > fatal: bad object ffffffffffffffffffffffffffffffffffffffff > > # 39*f > $ git show fffffffffffffffffffffffffffffffffffffff > fatal: ambiguous argument 'fffffffffffffffffffffffffffffffffffffff': unknown revision or path not in the working tree. > Use '--' to separate paths from revisions, like this: > 'git <command> [<revision>...] -- [<file>...]' > > Should rev-parse return an error as well, rather than > silenty succeeding? -- Todd ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ How can I tell that the past isn't a fiction designed to account for the discrepancy between my immediate physical sensation and my state of mind? -- Douglas Adams