HomePhabricator

Don't try to prune unreachable commits from repositories with no outdated refs

Description

Don't try to prune unreachable commits from repositories with no outdated refs

Summary:
Fixes T11269. The basic issue is that git log in an empty repository exits with an error message.

Prior to recent Git (2.6?), this message reads:

fatal: bad default revision 'HEAD'

This message was somewhat recently changed by https://github.com/git/git/commit/ce113604672fed9b429b1c162b1005794fff6a17. After that, it reads:

fatal: your current branch 'master' does not have any commits yet

This change isn't technically a complete fix because you could still hit this issue like this:

  • Create an empty repository.
  • Push some stuff to master.
  • Delete master.

However, this is very rare and even in this case the repository will fix itself once you push something again. We can try to fix that if any users ever actually hit it.

Test Plan:

  • Created a new empty Git repository.
  • Ran bin/repository update Rxx.
  • Before patch: "git log" error because of the empty repository.
  • After patch: clean update.
  • Also ran repository update on a non-empty repository.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T11269

Differential Revision: https://secure.phabricator.com/D16234