As we're now fetching a commitish object, use that to get the
treeish_string directly instead of looking it up again. This is cleaner
as it avoids the dual lookup, but my main motivation is that it isolates
the "treeish string"-ness more for eventual removal.
A "treeish string" may be something like 'ubuntu/devel', which is a
reference and not a git object id, so cannot be given directly to
pygit2.Repository.get(). Instead we must use
pygit2.Repository.revparse_single().
This fixes a regression in 'git ubuntu merge start ubuntu/devel', which
otherwise passed 'ubuntu/devel' as the treeish_string and failed.
git ubuntu lint: propogate unexpected hunks up in _check_deconstruct_to_logical_patch
We were unconditionally returning True from this code, but setting a
local variable to False (which we intended to propogate back to the
caller). Introduce a variable to track the per-hunk success/failure and
then a higher-level variable to track the patch success/failure and
return that.