**Out of the scope of this PR nitpick**

Although this is perfectly valid for the function to fail as `foo` and `foo/foo` are namespaces (or directories from the FS perspective), I wonder if `GIT_ERROR` is meaningful enough. From the user perspective, the looked up tag doesn't exist, after all.

@carlosmn what's your take on this?