project: run fetch --refetch on unable to not parse commit

Similarly to e59e2ae757, handle missing
gc'ed commits by running `git fetch --refetch`.

R=jojwang@google.com

Bug: b/360889369
Bug: b/371000949
Change-Id: I108b870b855d3b9f23665afa134c6e35f7cd2830
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/438461
Reviewed-by: Joanna Wang <jojwang@google.com>
Tested-by: Josip Sokcevic <sokcevic@google.com>
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
This commit is contained in:
Josip Sokcevic 2024-10-02 18:05:48 +00:00 committed by LUCI
parent 621de7ed12
commit cfe3095e50

View File

@ -2664,7 +2664,10 @@ class Project:
# TODO(b/360889369#comment24): git may gc commits incorrectly. # TODO(b/360889369#comment24): git may gc commits incorrectly.
# Until the root cause is fixed, retry fetch with --refetch which # Until the root cause is fixed, retry fetch with --refetch which
# will bring the repository into a good state. # will bring the repository into a good state.
elif gitcmd.stdout and "could not parse commit" in gitcmd.stdout: elif gitcmd.stdout and (
"could not parse commit" in gitcmd.stdout
or "unable to parse commit" in gitcmd.stdout
):
cmd.insert(1, "--refetch") cmd.insert(1, "--refetch")
print( print(
"could not parse commit error, retrying with refetch", "could not parse commit error, retrying with refetch",