From the `pre-push.sample` file:
> Information about the commits which are being pushed is supplied as
> lines to the standard input in the form:
>
> <local ref> <local sha1> <remote ref> <remote sha1>
When `<local ref>` is not simply a branch name, but a more general
ref (see git-rev-parse(1)), it could contain whitespace, and that
breaks the split() call that expected only 3 spaces in the line.
Changed to use `rsplit(maxsplit=3)` since only the <local ref> is
likely to have embedded whitespace.
Added a new test case for the same.