The bug was that if a byte in a commit id was less than 16 then it would
have a leading 0 which the format specifier that printed hex would
ignore.
The code improvements were removing instances or reading newlines from
stdin because breakpoints are better and the print statements are
sufficeient as points to break on, it may make sense to replace them
with function calls to functions which noop in future but for now this
is good enough.
In addition ignored some warnings in enum definitions, having error info
is useful in the debugger if nothing else so we're not just going to
throw that away due to a warning.