Fix regressions using diff with bare Git repositories.
Review Request #13898 — Created May 27, 2024 and submitted — Latest diff uploaded
An older cleanup of the Git path and state management broke support for
bare Git repositories. We were computing a "top-level" path for Git, and
further processing this when encountering a standard (non-bare)
repository. However, just due to a mistake, we failed to set a value for
bare repositories. This would later resut in an assertion failure.This is a pretty simple change that sets this path in all cases. The
only case where it wouldn't set now is when we also can't compute a
.git
path at all.Nearby code has been updated to help keep type safety, ensuring we were
working off of locally-validated types for variables before buiding
paths off the.git
directory, and then asserting at the end that we
had a valid top-level path.
Tested generating a diff on a bare Git repository, which previously
had failed.Unit tests pass.