Fix git-p4 detection after git gc
Review Request #12257 — Created April 25, 2022 and submitted — Latest diff uploaded
The detection of git-p4 repositories is based on the presence of the `remotes/p4/master` file. Sometimes after a `git gc` this physical file on the filesystem can be removed by git although the ref `p4/master` still exists (and it is of course, stil a git-p4 repo). The result is incomprehehsible backtraces and users are confused why their repo suddently stopped working. The solution is to use `git show-ref` instead. Note this is still not bulletproof as in theory the git-p4 ref could be anything, but this is an improvement on status quo.
in a git-p4 repo that has been around for a long time and had many commits etc, git gc. (this often happens unexpectedly/automatically). Observe that
.git/refs/remotes/p4/masterdoes not exist.
rbt postfrom that repo and see that it works (PASS)> previously, and obscure stacktrace was printed (becauae repo detection failed to correctly identify it as git-p4).