Jeff King <peff@xxxxxxxx> writes: > with an empty reflog file (added by that same commit). The code in > get_oid_basic() to parse reflogs doesn't suffer from the same bugs: it > checks up front that the reflog file exists, it preloads the output oid > with the current ref value, and it doesn't look at other fields (like > the reflog message). It is a usability hack to allow foo@{0} to resolve successfully, instead of causing a failure, when there is no reflog entries for foo, I would think. As to the "show-branch -g", the intent is to see the recent evolution of the branch, so I am fine if we do not give any output when no reflog entries exist (i.e. "no evolution behind the current state---it just is"), or just one entry output for "foo@{0}" to say "there is only one recent state". Even though it may feel wrong to successfully resolve foo@{0} when reflog for foo does not exist at the mechanical level (read: the implementors of reflog mechanism may find the usability hack a bad idea), I suspect at the end-user level it may be closer to what people expect out of foo@{0} (i.e. "give me the latest"). Thanks.