@@ -838,10 +838,11 @@ def version_info(self) -> Tuple[int, int, int, int]:
838838
839839 This value is generated on demand and is cached.
840840 """
841- refresh_token = self ._refresh_token # Copy it, in case of a concurrent refresh.
841+ # Use a copy of this global state, in case of a concurrent refresh.
842+ refresh_token = self ._refresh_token
842843
843844# Ask git for its version if we haven't done so since the last refresh.
844- # (Refreshing is global, butversion information caching is per-instance.)
845+ # (Refreshing is global, butversion_info caching is per-instance.)
845846if self ._version_info_token is not refresh_token :
846847# We only use the first 4 numbers, as everything else could be strings in fact (on Windows).
847848process_version = self ._call_process ("version" )# Should be as default *args and **kwargs used.
@@ -853,6 +854,7 @@ def version_info(self) -> Tuple[int, int, int, int]:
853854 )
854855self ._version_info_token = refresh_token
855856
857+ assert self ._version_info is not None ,"Bug: token check should never let None through"
856858return self ._version_info
857859
858860@overload