Before I noticed this PR, I looked into this same code this morning. My inclination was to do the initialize `old_fetchhead` to -1 and check for -1 under the `cleanup` label. For libgit2, I think that's more in the typical style than having two separate labels.